uinst: ajouter l'option -h pour la méthode uinst:rsync

This commit is contained in:
Jephté Clain 2015-08-21 10:31:13 +04:00
parent 7643573a8e
commit d9282f756a
1 changed files with 33 additions and 5 deletions

View File

@ -49,6 +49,7 @@ function uinst() {
local workdir_includes local workdir_includes
local copy_files local copy_files
local destdir local destdir
local destdir_override_userhost
local srcdir local srcdir
local -a files local -a files
local owner local owner
@ -76,8 +77,15 @@ OPTIONS
liste de préfixes valides. Utiliser 'udir --help-vars' pour avoir une liste de préfixes valides. Utiliser 'udir --help-vars' pour avoir une
liste de variables valides pour $scriptname. liste de variables valides pour $scriptname.
-d /path/to/destdir -d /path/to/destdir
Spécifier le répertoire destination. Equivalent à l'option Spécifier le répertoire destination, exactement comme si la valeur
destdir=\"/path/to/destdir\" destdir avait été spécifiée, i.e destdir=\"/path/to/destdir\"
-h, --host [user@]host
Avec la méthode de déploiement uinst:rsync, permettre de spécifier un
hôte différent. Cette option est ignorée pour les autres méthodes de
déploiement. Si host vaut localhost, un déploiement local avec ssh est
effectué. Si host vaut '.', un déploiement local *sans passer par ssh*
est effectué, comme si seul le chemin avait été spécifié.
Cette option initialise la valeur destdir_override_userhost
-a (par défaut) Si la source n'est pas spécifiée, déterminer le répertoire -a (par défaut) Si la source n'est pas spécifiée, déterminer le répertoire
à déployer automatiquement. à déployer automatiquement.
--no-auto --no-auto
@ -131,7 +139,8 @@ OPTIONS
--is-tmpdir UINST_ISTMPDIR \ --is-tmpdir UINST_ISTMPDIR \
-O: '$__uinst_addvar owner "$value_"' \ -O: '$__uinst_addvar owner "$value_"' \
-m: '$__uinst_addvar modes "$value_"' \ -m: '$__uinst_addvar modes "$value_"' \
-d: '$__uinst_addvar destdir $value_' \ -d: '$__uinst_addvar destdir "$value_"' \
-h:,-H:,--host: '$__uinst_addvar destdir_override_userhost "$value_"' \
-a,--auto UINST_AUTOSRCDIR=1 \ -a,--auto UINST_AUTOSRCDIR=1 \
--no-auto UINST_AUTOSRCDIR= \ --no-auto UINST_AUTOSRCDIR= \
--prefix UINST_AUTOPREFIX=1 \ --prefix UINST_AUTOPREFIX=1 \
@ -197,6 +206,7 @@ function __uinst_init() {
workdir_includes='()' workdir_includes='()'
copy_files='true' copy_files='true'
destdir='/usr/local' destdir='/usr/local'
destdir_override_userhost=
srcdir='.' srcdir='.'
files='()' files='()'
owner='root:' owner='root:'
@ -375,7 +385,7 @@ Utilisez 'udir -e $(ppath "$srcdir")' pour modifier les paramètres."
function __uinst_defaultvars() { function __uinst_defaultvars() {
eval "$(array_join UINST_DEFAULTS ';')" eval "$(array_join UINST_DEFAULTS ';')"
UDIR_VARS=(uinc install_profiles profiledir bashrcdir defaultdir copy_files destdir srcdir owner) UDIR_VARS=(uinc install_profiles profiledir bashrcdir defaultdir copy_files destdir destdir_override_userhost srcdir owner)
UDIR_ARRAYS=(uinc_options uinc_args preconfig_scripts configure_variables configure_dest_for config_scripts workdir_rsync_options workdir_excludes workdir_includes files modes root_scripts) UDIR_ARRAYS=(uinc_options uinc_args preconfig_scripts configure_variables configure_dest_for config_scripts workdir_rsync_options workdir_excludes workdir_includes files modes root_scripts)
} }
@ -910,6 +920,20 @@ function __uinst_rsync() {
__uinst_setvars __uinst_setvars
# corriger éventuellement destdir # corriger éventuellement destdir
[ -n "$UINST_AUTOPREFIX" ] && destdir="$(expand_prefix "$destdir")" [ -n "$UINST_AUTOPREFIX" ] && destdir="$(expand_prefix "$destdir")"
# si un hôte a été spécifié avec --host, utiliser cette valeur
if [ -n "$destdir_override_userhost" ]; then
splituserhost "$destdir_override_userhost" __override_user __override_host
splitfsep2 "$destdir" : __destdir_userhost __destdir_path
splituserhost "$__destdir_userhost" __destdir_user __destdir_host
[ -n "$__override_user" ] || __override_user="$__destdir_user"
if [ "$__override_host" != . ]; then
# déploiement distant
destdir="${__override_user:+$__override_user@}$__override_host:$__destdir_path"
else
# déploiement local
destdir="$__destdir_path"
fi
fi
# les variables de configure_variables ne sont pas prises en compte. pas la # les variables de configure_variables ne sont pas prises en compte. pas la
# peine de les afficher # peine de les afficher
configure_variables=() configure_variables=()
@ -928,8 +952,12 @@ function __uinst_rsync() {
if [ -n "${files[*]}" ]; then if [ -n "${files[*]}" ]; then
srcdesc="$srcdesc/{$(array_join files ,)}" srcdesc="$srcdesc/{$(array_join files ,)}"
fi fi
if [[ "$destdir" == *:* ]]; then
ask_yesno "Synchroniser $srcdesc vers $(ppath "$destdir")?" O || return
else
ask_yesno "Synchroniser $srcdesc vers $(ppath "$destdir") sur $MYHOST?" O || return ask_yesno "Synchroniser $srcdesc vers $(ppath "$destdir") sur $MYHOST?" O || return
fi fi
fi
cd "$srcdir" || return 1 cd "$srcdir" || return 1
local localsync=1 local localsync=1