# 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