# ulib/udir ## `udir_check` ~~~ Vérifier si le fichier $1 existe Si $1 est un répertoire, prendre $1/.udir ~~~ ## `udir_create_maybe` ~~~ Si le fichier $1 n'existe pas, le créer comme un template .udir Si $1 est un répertoire, prendre $1/.udir ~~~ ## `udir_dump` ~~~ Dumper toutes les variables définies pour le fichier $1 Si $1 est un répertoire, prendre $1/.udir ~~~ ## `udir_eval` ~~~ Evaluer la commande "$2..$*" dans le contexte des variables définies pour le répertoire $1. La commande est évaluée dans un sous-shell pour ne pas polluer l'espace de noms courant. ~~~ ## `udir_dump_all` ~~~ Dumper toutes les variables définies pour le répertoire $1 et *tous ses parents* jusqu'à la racine ~~~ ## `udir_eval_all` ~~~ Evaluer la commande "$2..$*" dans le contexte des variables définies pour le répertoire $1 et *tous ses parents* jusqu'à la racine ~~~ ## `udir_parse` ~~~ Dans le fichier $1, lire les noms des variables Si $1 est un répertoire, prendre $1/.udir Les noms des variables sont placés dans le tableau $2(=UDIR_VARS), et les noms des tableaux sont placés dans le tableau $3(=UDIR_ARRAYS) note: les regex qui sont entre "" au lieu de // le sont à cause d'un bug de awk sous macosx ~~~ ## `udir_update` ~~~ Dans le fichier $1, mettre à jour les variables $2..* Si $1 est un répertoire, prendre $1/.udir Chaque argument de cette fonction est de la forme name[=value] Si value n'est pas précisée, la variable obtient une valeur nulle (i.e. var=) Si la variable ne figure pas dans le fichier, elle est rajoutée à la fin du fichier. Cette fonction nécessite gawk. ~~~ ## `write_unseen` ## `udir_edit` -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary