améliorer l'ergonomie de ruinst, rwoinst, toinst: pas la peine de confirmer le répertoire courant s'il est déployé sur un hôte

This commit is contained in:
Jephté Clain 2017-04-21 17:50:54 +04:00
parent 8ce9821095
commit 0365c5483c
3 changed files with 59 additions and 28 deletions

28
rtoinst
View File

@ -133,23 +133,24 @@ parse_opts "${PRETTYOPTS[@]}" \
: "${SSH:=ssh}" : "${SSH:=ssh}"
## webapp à déployer ## webapp à déployer et hôtes sur lesquels faire le déploiement
confirm_webapp=
if [ $# -eq 0 ] || [[ "$1" == -* ]]; then if [ $# -eq 0 ] || [[ "$1" == -* ]]; then
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de toinst) # pas d'argument, ou c'est une option (qui fait donc partie des arguments de toinst)
[ -d WEB-INF ] && webapp=. || webapp= [ -d WEB-INF ] && webapp=. || webapp=
read_value "Veuillez entrer la webapp à déployer" webapp "$webapp" O confirm_webapp=1
set -- "$webapp" "$@" else
webapp="$1"
fi fi
## Hôtes sur lesquels faire le déploiement
toinst_options=() toinst_options=()
if array_isempty hosts && [ -n "$deploy_enable" ]; then if array_isempty hosts && [ -n "$deploy_enable" -a -n "$webapp" ]; then
urequire deploy urequire deploy
deploy_setconf "$deploy_confname" deploy_setconf "$deploy_confname"
if deploy_loadconf; then if deploy_loadconf; then
setxx webapp=abspath "$1" // basename -- setxx waname=abspath "$webapp" // basename --
if eval "$(deploy_query -v host,wamap,protect DEST webapp rtoinst_deploy "$deploy_profile" shell "$webapp")"; then if eval "$(deploy_query -v host,wamap,protect DEST webapp rtoinst_deploy "$deploy_profile" shell "$waname")"; then
msg="Cette webapp sera déployée vers les hôtes suivants: msg="$waname: cette webapp sera déployée vers les hôtes suivants:
$(array_to_lines host "" " ")" $(array_to_lines host "" " ")"
if [ -n "$wamap" -o -n "$protect" ]; then if [ -n "$wamap" -o -n "$protect" ]; then
msg="$msg msg="$msg
@ -164,9 +165,20 @@ avec le(s) paramètre(s) suivant(s):"
array_copy hosts host array_copy hosts host
[ -n "$wamap" ] && array_add toinst_options --wamap "$wamap" [ -n "$wamap" ] && array_add toinst_options --wamap "$wamap"
[ -n "$protect" ] && array_add toinst_options --protect "$protect" [ -n "$protect" ] && array_add toinst_options --protect "$protect"
if [ -n "$confirm_webapp" ]; then
confirm_webapp=
set -- "$webapp" "$@"
fi
fi fi
fi fi
fi fi
if [ -n "$confirm_webapp" ]; then
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de toinst)
read_value "Veuillez entrer la webapp à déployer" webapp "$webapp" O
set -- "$webapp" "$@"
fi
array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost" array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost"
fix_hosts fix_hosts

24
ruinst
View File

@ -219,30 +219,38 @@ fi
################################################################################ ################################################################################
# Déploiement # Déploiement
## Répertoire à déployer ## Répertoires à déployer et hôtes sur lesquels faire le déploiement
confirm_src=
if [ $# -eq 0 ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; then if [ $# -eq 0 ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; then
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de uinst) # pas d'argument, ou c'est une option (qui fait donc partie des arguments de toinst)
read_value "Entrez le répertoire à déployer" src "." O src=.
confirm_src=1
else else
# Enlever le répertoire à déployer. Le reste est pour uinst # Enlever le répertoire à déployer. Le reste est pour uinst
src="$1" src="$1"
shift shift
fi fi
## Hôtes sur lesquels faire le déploiement if array_isempty hosts && [ -n "$deploy_enable" -a -n "$src" ]; then
if array_isempty hosts && [ -n "$deploy_enable" ]; then
urequire deploy urequire deploy
deploy_setconf "$deploy_confname" deploy_setconf "$deploy_confname"
if deploy_loadconf; then if deploy_loadconf; then
setxx module=abspath "$src" // basename -- setxx srcname=abspath "$src" // basename --
if eval "$(deploy_query -v host DEST module ruinst_deploy "" shell "$module")"; then if eval "$(deploy_query -v host DEST module ruinst_deploy "" shell "$srcname")"; then
check_interaction -c && einfo "Ce module sera déployé vers les hôtes suivants: check_interaction -c && einfo "$srcname: ce module sera déployé vers les hôtes suivants:
$(array_to_lines host "" " ")" $(array_to_lines host "" " ")"
ask_any "Voulez-vous continuer?" Oq || die ask_any "Voulez-vous continuer?" Oq || die
array_copy hosts host array_copy hosts host
confirm_src=
fi fi
fi fi
fi fi
if [ -n "$confirm_src" ]; then
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de toinst)
read_value "Entrez le répertoire à déployer" src "$src" O
fi
array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost" array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost"
fix_hosts fix_hosts

35
rwoinst
View File

@ -124,32 +124,43 @@ parse_opts "${PRETTYOPTS[@]}" \
: "${SSH:=ssh}" : "${SSH:=ssh}"
## Bundle à déployer ## Bundle à déployer et hôtes sur lesquels faire le déploiement
confirm_bundle=
if [ $# -eq 0 ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; then if [ $# -eq 0 ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; then
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de # pas d'argument, ou c'est une option (qui fait donc partie des arguments de toinst)
# woinst) case "$(basename -- "$(pwd)")" in
case "$(dirname "$(pwd)")" in
*.woa|*.framework) bundle=.;; *.woa|*.framework) bundle=.;;
*) bundle=;; *) bundle=;;
esac esac
read_value "Veuillez entrer le bundle à déployer" bundle "$bundle" O confirm_bundle=1
set -- "$bundle" "$@" else
bundle="$1"
fi fi
## Hôtes sur lesquels faire le déploiement if array_isempty hosts && [ -n "$deploy_enable" -a -n "$bundle" ]; then
if array_isempty hosts && [ -n "$deploy_enable" ]; then
urequire deploy urequire deploy
deploy_setconf "$deploy_confname" deploy_setconf "$deploy_confname"
if deploy_loadconf; then if deploy_loadconf; then
setxx wobundle=abspath "$1" // basename -- setxx bundlename=abspath "$bundle" // basename --
if eval "$(deploy_query -v host DEST wobundle rwoinst_bundle "" shell "$wobundle")"; then if eval "$(deploy_query -v host DEST wobundle rwoinst_bundle "" shell "$bundlename")"; then
check_interaction -c && einfo "Ce bundle sera déployé vers les hôtes suivants: check_interaction -c && einfo "$bundlename: ce bundle sera déployé vers les hôtes suivants:
$(array_to_lines host "" " ")" $(array_to_lines host "" " ")"
ask_any "Voulez-vous continuer?" Oq || die ask_any "Voulez-vous continuer?" Oq || die
array_copy hosts host array_copy hosts host
if [ -n "$confirm_bundle" ]; then
confirm_bundle=
set -- "$bundle" "$@"
fi
fi fi
fi fi
fi fi
if [ -n "$confirm_bundle" ]; then
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de toinst)
read_value "Veuillez entrer la bundle à déployer" bundle "$bundle" O
set -- "$bundle" "$@"
fi
array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost" array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost"
fix_hosts fix_hosts
@ -180,7 +191,7 @@ while [ -n "$1" ]; do
else else
die "N'est pas un bundle valide: $(ppath "$src")" die "N'est pas un bundle valide: $(ppath "$src")"
fi fi
estep "$(ppath "$src")" estep "$(ppath2 "$src")"
cp_R "$src" "$workdir" || die cp_R "$src" "$workdir" || die
else else
die "Fichier ou répertoire introuvable: $src" die "Fichier ou répertoire introuvable: $src"