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