nutools/TODO.md

2.6 KiB

TODO

il faudrait pouvoir mettre au téléchargement des fichiers générés dynamiquement.

  • soit à la mode -E c'est à dire qu'ils ne sont pas listés mais téléchargeables
  • soit à la mode -e c'est à dire qu'ils sont inclus dans la liste retournée

dans tous les cas, quand le fichier est demandé, la commande associée est lancée avec certains paramètres. il faudrait peut-être supporter la notion de fichier dérivé, ce qui implique que le script est lancé avec la référence du fichier de base, à partir duquel est généré le contenu effectif

donc on pourrait avoir:

  • -E "spec:;command args..." lance la commande avec des arguments parmi lesquels on peut mentionner les variables %s == spec, %f == le fichier demandé, etc.
  • -e "spec:;command args..." lance la commande avec des arguments parmi lesquels on peut mentionner les variables %s == spec, %f == le fichier demandé, %b le fichier de base qui correspond au pattern spec, etc.

à réfléchir: comme les fichiers sont générés dynamiquement, avec l'option '-e' la valeur 'spec' n'a pas de signification, parce qu'il n'y a pas de fichier avec lesquels faire la correspondance... il faut donc trouver une syntaxe pour spécifier comment transformer des fichiers existant en modèles de fichiers que l'on peut demander. ensuite, il faut pouvoir faire un lien entre un fichier physique et le nom qui a été généré pour la construction dynamique.

il faut aussi supporter le cas où le nom de fichier est généré sans fichier physique associé.

peut-être "-e spec:[basespec:];command" ? exemples:

-e "\1\.pdf:(.*)\.doc:;convert-to-pdf %b -o %f"

et pour un fichier généré dynamiquement:

-e "rand.*\.dat:;gen-random %f"

si la commande ne contient pas la variable %f, on assume que les données sont écrite sur la sortie standard. sinon, il faut préparer un fichier temporaire et le fournir comme valeur %f. la commande est censée provisionner le fichier.

si une variable %f ou %b est spécifiée telle quelle, les caractères spéciaux sont mis en échappement automatiquement. si elle est spécifiée à l'intérieur d'une autre valeur, aucun quoting n'est effectué.

e.g. si %f vaut "file with space.txt" alors

la commande             cmd %f
donnera effectivement   cmd "file with space.txt"        (un seul argument)

alors que la commande   cmd prefix/%f
donnera                 cmd prefix/file with space.txt   (3 arguments)

donc la commande        cmd "prefix/%f"
donnera                 cmd "prefix/file with space.txt" (1 argument)

-- coding: utf-8 mode: markdown -- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary