simplifier l'API
This commit is contained in:
parent
c9886925a3
commit
7d1ec90345
|
@ -23,31 +23,29 @@ function conf_auto() {
|
||||||
# conf_auto NAME
|
# conf_auto NAME
|
||||||
# est équivalent à:
|
# est équivalent à:
|
||||||
# conf_init VARS...
|
# conf_init VARS...
|
||||||
# conf_resolve __CONF_FILES ~/etc/default/NAME.conf ~/etc/NAME.d/*.conf
|
# conf_find_files __CONF_FILES ~/etc/default/NAME.conf ~/etc/NAME.d/*.conf
|
||||||
# conf_load "${__CONF_FILES[@]}"
|
# conf_load_files "${__CONF_FILES[@]}"
|
||||||
# Pour supporter les scénarii où les fichiers de configuration sont ailleurs
|
# Pour supporter les scénarii où les fichiers de configuration sont ailleurs
|
||||||
# que dans ~/etc/default, l'argument NAME peut être un chemin:
|
# que dans ~/etc/default, l'argument NAME peut être un chemin:
|
||||||
# conf_auto PATH/TO/NAME VARS...
|
# conf_auto PATH/TO/NAME VARS...
|
||||||
# est équivalent à:
|
# est équivalent à:
|
||||||
# conf_init VARS...
|
# conf_init VARS...
|
||||||
# conf_resolve __CONF_FILES PATH/TO/NAME.conf PATH/TO/NAME.d/*.conf
|
# conf_find_files __CONF_FILES PATH/TO/NAME.conf PATH/TO/NAME.d/*.conf
|
||||||
# conf_load "${__CONF_FILES[@]}"
|
# conf_load_files "${__CONF_FILES[@]}"
|
||||||
|
|
||||||
local __name="$1"; shift
|
local __name="$1"; shift
|
||||||
[ -n "$__name" ] || return 1
|
[ -n "$__name" ] || return 1
|
||||||
[ $# -gt 0 ] && conf_init "$@"
|
[ $# -gt 0 ] && conf_init "$@"
|
||||||
local -a __CONF_FILES
|
local -a __CONF_FILES
|
||||||
if [[ "$__name" == */* ]]; then
|
if [[ "$__name" == */* ]]; then
|
||||||
conf_resolve __CONFS_FILES "$__name.conf" "$__name.d/*.conf"
|
conf_load "$__name.conf" "$__name.d/*.conf"
|
||||||
else
|
else
|
||||||
conf_resolve __CONFS_FILES "$HOME/etc/default/$__name.conf" "$HOME/etc/$__name.d/*.conf"
|
conf_load "$HOME/etc/default/$__name.conf" "$HOME/etc/$__name.d/*.conf"
|
||||||
fi
|
fi
|
||||||
conf_load "${__CONFS_FILES[@]}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function conf_init() {
|
function conf_init() {
|
||||||
# définir les variables attendues lors du chargement des fichiers de
|
# définir les variables attendues lors du chargement des fichiers de
|
||||||
# configuration par conf_load
|
# configuration par conf_load_files
|
||||||
# par défaut, les variables sont en mode scalaire: la définition d'une
|
# par défaut, les variables sont en mode scalaire: la définition d'une
|
||||||
# variable écrase la valeur précédente. Avec l'option -a les variables sont
|
# variable écrase la valeur précédente. Avec l'option -a les variables sont
|
||||||
# en mode tableau: les nouvelles valeurs sont rajoutées à la fin du tableau.
|
# en mode tableau: les nouvelles valeurs sont rajoutées à la fin du tableau.
|
||||||
|
@ -78,7 +76,18 @@ function conf_init() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function conf_resolve() {
|
function conf_load() {
|
||||||
|
# charger les fichiers de configuration spécifiés
|
||||||
|
# conf_load SPECS...
|
||||||
|
# est équivalent à:
|
||||||
|
# conf_find_files __CONF_FILES SPECS...
|
||||||
|
# conf_load_files "${__CONF_FILES[@]}"
|
||||||
|
local -a __CONF_FILES
|
||||||
|
conf_find_files __CONFS_FILES "$@"
|
||||||
|
conf_load_files "${__CONFS_FILES[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function conf_find_files() {
|
||||||
# initialiser le tableau $1 avec les fichiers de configuration correspondant
|
# initialiser le tableau $1 avec les fichiers de configuration correspondant
|
||||||
# aux arguments $2..@
|
# aux arguments $2..@
|
||||||
# - si on spécifie un fichier, il est pris tel quel s'il existe
|
# - si on spécifie un fichier, il est pris tel quel s'il existe
|
||||||
|
@ -104,7 +113,7 @@ function conf_resolve() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function conf_load() {
|
function conf_load_files() {
|
||||||
# sourcer les fichiers spécifiés en faisant ce qui est nécessaire pour que
|
# sourcer les fichiers spécifiés en faisant ce qui est nécessaire pour que
|
||||||
# les variables de __CONF_ARRAY_VARS soient correctement traitées.
|
# les variables de __CONF_ARRAY_VARS soient correctement traitées.
|
||||||
local -a __conf_backups __conf_values
|
local -a __conf_backups __conf_values
|
||||||
|
|
Loading…
Reference in New Issue