diff --git a/lib/ulib/multiconf b/lib/ulib/multiconf index c7446e2..ac9efb8 100644 --- a/lib/ulib/multiconf +++ b/lib/ulib/multiconf @@ -1,6 +1,7 @@ ##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 ## Gestion de fichiers de configuration et de répertoires de configuration ##@cooked nocomments +uprovide multiconf function conf_local() { # afficher les commandes pour définir comme locales les variables utilisées @@ -10,7 +11,6 @@ function conf_local() { function conf_auto() { # charger la configuration pour l'outil $1 avec les variables $2..@ - # conf_init n'est appelé que si des variables sont spécifiées, ce qui permet # d'appeler conf_init au préalable si une configuration spécifique doit être # faite. @@ -23,6 +23,13 @@ function conf_auto() { # conf_init VARS... # conf_resolve __CONF_FILES ~/etc/default/NAME.conf ~/etc/NAME.d/*.conf # conf_load "${__CONF_FILES[@]}" + # Pour supporter les scénarii où les fichiers de configuration sont ailleurs + # que dans ~/etc/default, l'argument NAME peut être un chemin: + # conf_auto PATH/TO/NAME VARS... + # est équivalent à: + # conf_init VARS... + # conf_resolve __CONF_FILES PATH/TO/NAME.conf PATH/TO/NAME.d/*.conf + # conf_load "${__CONF_FILES[@]}" local __name="$1"; shift [ -n "$__name" ] || return 1 @@ -40,7 +47,7 @@ function conf_init() { # dans l'exemple suivant: # conf_init NAME VALUE -a SRCDIRS DESTDIRS # NAME et VALUE sont scalaires alors que SRCDIRS et DESTDIRS sont tableaux - # Les variables sont initialisées à zéro ou à la valeur spécifiée, e.g + # Les variables sont initialisées à la valeur vide ou à la valeur spécifiée: # conf_init VAR=value # L'option -s permet de revenir au mode scalaire __CONF_ARRAY_VARS=()