diff --git a/toinst b/toinst index 975ce08..fd83d2a 100755 --- a/toinst +++ b/toinst @@ -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