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

24
ruinst
View File

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

35
rwoinst
View File

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