début du support de .toinst.conf

This commit is contained in:
Jephté Clain 2017-04-19 08:12:32 +04:00
parent a84775ce48
commit 9084e7eb34
1 changed files with 39 additions and 6 deletions

45
toinst
View File

@ -66,7 +66,7 @@ OPTIONS
être spécifiés en les séparant par des virgules. Si src est mentionné
plusieurs fois, e.g src:dest1,src:dest2 alors la webapp src est déployée
plusieurs fois avec des noms distincts.
--protect PRMAPS
--protect PROTECTS
--exclude EXCLUDES
--replace-excludes EXCLUDES
--rsync-option RSYNC_OPTIONS
@ -83,7 +83,11 @@ OPTIONS
-r, --restart-only
Ne pas faire le déploiement. Redémarrer uniquement l'application.
--fake
Afficher simplement ce qui serait fait. Ne pas le faire réellement."
Afficher simplement ce qui serait fait. Ne pas le faire réellement.
--config-template
Créer un modèle de configuration dans le répertoire des webapp
spécifiées. Si aucune webapp n'est spécifiée, créer le fichier dans le
répertoire courant."
}
VARS=(
@ -93,7 +97,7 @@ VARS=(
BACKUP RESTART
)
ARRAYS=(
WAMAPS PRMAPS EXCLUDES RSYNC_OPTIONS REPLACE_RSYNC_OPTIONS
WAMAPS PROTECTS EXCLUDES RSYNC_OPTIONS REPLACE_RSYNC_OPTIONS
)
function __reset_vars() {
local var
@ -178,7 +182,7 @@ manager_url=
manager_user=
manager_password=
wamaps=()
prmaps=()
protects=()
excludes=()
rsync_options=(-rptL --delete --exclude /.git/)
replace_rsync_options=()
@ -207,6 +211,7 @@ args=(
-n,--no-restart restart=0
-r,--restart-only action=restart
--fake fake=1
--config-template action=config-template
)
parse_args "$@"; set -- "${args[@]}"
@ -367,7 +372,9 @@ fi
# A partir de la liste des webapps et de WAMAPS, construire une liste de couples
# waname:src pour la sauvegarde et/ou le déploiement
if [ $# -eq 0 ]; then
[ -n "$fake" -o "$action" == config-template ] && require_webapps= || require_webapps=1
if [ $# -eq 0 -a -n "$require_webapps" ]; then
[ -d WEB-INF ] && src=. || src=
read_value "Veuillez entrer la webapp à déployer" src "$src" O
set -- "$src"
@ -393,7 +400,7 @@ for src in "$@"; do
eerror "$src: fichier ou répertoire introuvable"
fi
done
[ ${#srcs[*]} -gt 0 -o -n "$fake" ] || die
[ ${#srcs[*]} -gt 0 -o -z "$require_webapps" ] || die
deploymaps=()
for src in "${srcs[@]}"; do
@ -414,6 +421,32 @@ done
################################################################################
# Maintenant, nous pouvons faire les actions
if [ "$action" == config-template ]; then
if [ ${#deploymaps[*]} -gt 0 ]; then
toinstconfname=.toinst.conf
else
toinstconfname=toinst.conf
deploymaps=(:.)
fi
for deploymap in "${deploymaps[@]}"; do
splitpair "$deploymap" waname src
toinstconf="$src/$toinstconfname"
if [ -f "$toinstconf" ]; then
estepi "$(ppath "$toinstconf"): configuration déjà existante"
else
estep "$(ppath "$toinstconf")"
echo >"$toinstconf" "# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
# Fichiers à exclure de la source lors du déploiement
#$(echo_seta2 EXCLUDES)
# Fichiers à protéger dans la destination lors du déploiement
#$(echo_seta2 PROTECTS)"
fi
done
exit 0
fi
## Sauvegarde
if [ -n "$BACKUP" -o "$action" == backup ]; then
if [ -n "$fake" ]; then