Re: meilleure maniere de prendre en compte les arguments dans un script ksh

Auteur: <openbsd.fr.eu.sy_at_puu.re>
Date: Thu, 26 Mar 2020 16:23:33 +0100
Le truc c'est que les echappements, les quotes ou double quotes ne 
passent pas.


Pour donner une idée, le script est actuellement accessible ici: 
https://sy.puu.re/flo

Concernant le briefing sur le script, celui-ci est inspiré de srss pour 
envoyer par mail les elements des flux rss (une reprise de la version 
golang qui ne me satisfaisait pas, 10mo a cause du runtime pour la 
tache, c'est trop gros ^^).
De base, il envoie les mails en html mais il a la possibilité de les 
envoyer en text ou multi text&html si on y rajoute en parametre la 
commande pour traduire le html en text.
Cela permet d'utiliser py-html2text, pandoc ou autre selon les 
desideratas de l'utilisateur pour la conversion en texte.

Le probleme est que ces derniers peuvent recevoir des arguments. Ainsi 
on peut convertir via pandoc par exemple avec "pandoc -r html -t 
markdown_mmd" ou "pandoc -r html -t gfm" selon le rendu voulu.

Voila des exemples d'usage avec commandes (avec le script tel 
qu'actuellement getopt le permet):
	flo -f both -o pandoc/-f/html/-t/markdown_mmd
	flo -f text -o html2text/-nobs

Et voici l'usage qui aurait été préféré:
	flo -f both -o "pandoc -f html -t markdown_mmd"
	flo -f text -o "html2text -nobs"


La liste des liens de flux doit se trouver dans le fichier 
~/.config/flo/flows, un par ligne.

On 26.03.2020 14:59, prx wrote:
> * openbsd.fr.eu.sy_at_puu.re <openbsd.fr.eu.sy_at_puu.re> le [26-03-2020
> 10:35:37 +0100]:
>> Bonjour à tous,
>> 
>> Je profite d'un essai au scriptage avec ksh pour émettre mon premier 
>> vrai
>> message public (en dehors de celui de présentation) à la communauté
>> francophone OpenBSD.
>> 
>> Je souhaite intégrer la prise en compte d'arguments à un script.
>> Il y a dans le système de base la commande 'getopt' qui permet cela 
>> mais
>> elle a des problèmes à gérer les arguments comportant des espaces ( 
>> indiqué
>> même dans la page man ).
>> 
>> Ainsi, il n'est pas possible avec de lancer un script tel que:
>> programme_script -d "argument avec espace"
>> 
>> Pour l'instant je contourne le probleme en remplacant les espaces par 
>> des
>> slashs. Ceci dit, ce petit hack ne me satisfait guère.
>> 
>> J'en appelle à vous pour savoir si vous connaissez une meilleure 
>> solution à
>> proposer.
>> 
>> Merci,
>> Sÿ
> 
> Salut,
> Je crois qu'échapper les espaces est la meilleure méthode.
> On peut voir un exemple de ton script (si ça peut donner une
> idée...)?
ReÇu le 26/03/2020 16:23

Cette archive a été créée par hypermail 2.3.0 : 11/03/2021 09:22 CET