maj doc
ne pas écraser le fichier .runsconfig s'il existe
This commit is contained in:
parent
0b460cf8c2
commit
16f5486157
59
runsconfig
59
runsconfig
|
@ -28,18 +28,27 @@ OPTIONS
|
|||
Afficher les différences entre les templates et les fichiers du
|
||||
répertoire d'hôte.
|
||||
--list-vars
|
||||
Afficher la valeur par défaut des variables prédéfinies
|
||||
Afficher pour information les valeurs par défaut des variables de
|
||||
template.
|
||||
--write-vars
|
||||
Forcer l'écriture des valeurs actuelles des variables dans le fichier
|
||||
.runsconfig, ce qui permet d'éviter de les spécifier à chaque fois avec
|
||||
l'option -v
|
||||
Ecrire dans le fichier .runsconfig les valeurs par défaut des variables,
|
||||
ce qui permet d'éviter de les spécifier à chaque fois avec l'option -v
|
||||
Le fichier n'est pas écrasé s'il existe déjà.
|
||||
-v, --var NAME=VALUE
|
||||
Spécifier la valeur d'une variable. Il est possible de spécifier des
|
||||
valeurs qui ne sont pas dans la liste prédéfinie."
|
||||
valeurs qui ne sont pas dans la liste prédéfinie. Par défaut, il s'agit
|
||||
d'une variable de template, utilisée pour mettre à jour la copie locale
|
||||
d'un template avec l'option --merge
|
||||
Dans le fichier .runsconfig, les valeurs des variables de template n'est
|
||||
pas censée changer. Lors de la copie des templates avec --merge, chaque
|
||||
occurence de @@VAR@@ dans un template est remplacée dans la copie locale
|
||||
par la valeur de la variable de template VAR"
|
||||
}
|
||||
function __templatectl_display_help() { display_help; }
|
||||
|
||||
## Valeurs par défaut des variables de template
|
||||
set_defaults runs
|
||||
|
||||
# essayer de déterminer l'hôte à partir du répertoire courant
|
||||
host=
|
||||
array_split __hostsdirs "$RUNSHOSTSPATH" :
|
||||
|
@ -52,6 +61,7 @@ for __hostsdir in "${__hostsdirs[@]}"; do
|
|||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# sinon lire l'environnement
|
||||
if [ -z "$host" ]; then
|
||||
runs_initdomains
|
||||
|
@ -63,11 +73,15 @@ if [ -z "$host" ]; then
|
|||
fi
|
||||
[ -n "$domain" ] || host="$(runs_add_domain "$host")"
|
||||
fi
|
||||
|
||||
hostname="${host%%.*}"
|
||||
TEMPLATE_VARS=(
|
||||
host hostname
|
||||
DEFAULT_TEMPLATE_VARS=(
|
||||
host="$host"
|
||||
hostname="$hostname"
|
||||
)
|
||||
function update_template_var() {
|
||||
|
||||
TEMPLATE_VARS=()
|
||||
function update_var() {
|
||||
# mettre à jour la valeur d'une variable en tenant compte de certaines
|
||||
# dépendances. par exemple, si on modifie host, il faut mettre à jour
|
||||
# hostname.
|
||||
|
@ -93,32 +107,38 @@ __TEMPLATECTL_SUPPLOPTS=(
|
|||
__templatectl_parseopts "$@" && \
|
||||
set -- "${args[@]}" || die "$args"
|
||||
|
||||
# répertoire source
|
||||
# répertoire de template
|
||||
setx __templatectl_srcdir=templatesrc runsconfig
|
||||
|
||||
# répertoire d'hôte
|
||||
[ -n "$__templatectl_destdir" ] || __templatectl_destdir=.
|
||||
setx __templatectl_destdir=abspath "$__templatectl_destdir"
|
||||
|
||||
# charger les variables
|
||||
# charger les variables. important: la liste des variables définie dans le
|
||||
# fichier .runsconfig prend la précédence sur la liste définie par défaut
|
||||
__template_vars=("${DEFAULT_TEMPLATE_VARS[@]}")
|
||||
__runsconfig_vars="$__templatectl_destdir/.runsconfig"
|
||||
if [ -f "$__runsconfig_vars" ]; then
|
||||
source "$__runsconfig_vars"
|
||||
for __var in "${__runsconfig[@]}"; do
|
||||
[ -f "$__runsconfig_vars" ] && source "$__runsconfig_vars"
|
||||
for __var in "${__template_vars[@]}"; do
|
||||
splitvar "$__var" __name __value
|
||||
update_template_var "$__name" "$__value"
|
||||
done
|
||||
fi
|
||||
update_var "$__name" "$__value"
|
||||
done
|
||||
array_contains TEMPLATE_VARS configdir || update_var configdir "$__templatectl_destdir"
|
||||
|
||||
# mettre à jour les variables
|
||||
__modified=
|
||||
for __var in "${__vars[@]}"; do
|
||||
splitvar "$__var" __name __value
|
||||
update_template_var "$__name" "$__value" && __modified=1
|
||||
update_var "$__name" "$__value" && __modified=1
|
||||
done
|
||||
|
||||
# enregistrer les valeurs des variables
|
||||
if [ -n "$__modified" -o "$__write_vars" ]; then
|
||||
if [ -n "$__write_vars" ]; then
|
||||
[ -f "$__runsconfig_vars" ] &&
|
||||
die "Refus d'écraser le fichier existant $(ppath "$__runsconfig_vars")"
|
||||
|
||||
>"$__runsconfig_vars"
|
||||
echo "__runsconfig=(" >>"$__runsconfig_vars"
|
||||
echo "__template_vars=(" >>"$__runsconfig_vars"
|
||||
for __var in "${TEMPLATE_VARS[@]}"; do
|
||||
echo_setv "$__var=${!__var}" >>"$__runsconfig_vars"
|
||||
done
|
||||
|
@ -127,6 +147,7 @@ fi
|
|||
|
||||
# afficher les variables
|
||||
if [ -n "$__list_vars" ]; then
|
||||
echo "# template vars"
|
||||
for __var in "${TEMPLATE_VARS[@]}"; do
|
||||
echo_setv "$__var=${!__var}"
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue