uinst: ajouter l'option -h pour la méthode uinst:rsync
This commit is contained in:
parent
7643573a8e
commit
d9282f756a
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue