# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
##@creator: jclain
##@created: 15/03/2012 22:15
##@modifier: jclain
##@changecount: 1
##@tags: 
##@title: 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}}}
