ajout de workdir_excludes et workdir_includes, particulièrement utile avec copy_files=false
This commit is contained in:
parent
3fc57711b5
commit
07383052ca
|
@ -43,6 +43,8 @@ function uinst() {
|
|||
local profiledir
|
||||
local bashrcdir
|
||||
local defaultdir
|
||||
local workdir_excludes
|
||||
local workdir_includes
|
||||
local copy_files
|
||||
local destdir
|
||||
local srcdir
|
||||
|
@ -180,6 +182,8 @@ function __uinst_init() {
|
|||
profiledir='lib/profile.d'
|
||||
bashrcdir='lib/bashrc.d'
|
||||
defaultdir='lib/default'
|
||||
workdir_excludes='()'
|
||||
workdir_includes='()'
|
||||
copy_files='true'
|
||||
destdir='/usr/local'
|
||||
srcdir='.'
|
||||
|
@ -361,7 +365,7 @@ Utilisez 'udir -e $(ppath "$srcdir")' pour modifier les paramètres."
|
|||
function __uinst_defaultvars() {
|
||||
eval "$(array_join UINST_DEFAULTS ';')"
|
||||
UDIR_VARS=(uinc install_profiles profiledir bashrcdir defaultdir copy_files destdir srcdir owner)
|
||||
UDIR_ARRAYS=(uinc_options uinc_args preconfig_scripts configure_variables configure_dest_for config_scripts files modes root_scripts)
|
||||
UDIR_ARRAYS=(uinc_options uinc_args preconfig_scripts configure_variables configure_dest_for config_scripts workdir_excludes workdir_includes files modes root_scripts)
|
||||
}
|
||||
|
||||
function __uinst_protectvars() {
|
||||
|
@ -594,11 +598,28 @@ function __uinst_prepare_workdir() {
|
|||
# Faire une copie de travail de $srcdir dans $1
|
||||
# srcdir est modifié pour devenir la nouvelle valeur
|
||||
local srcname="$(basename "$srcdir")"
|
||||
local destdir="$1/$srcname"
|
||||
|
||||
estep "Création d'une copie de travail dans $1..."
|
||||
"${UINST_COPY_METHOD:-cpnovcs}" "$srcdir" "$1/$srcname"
|
||||
if [ ${#workdir_excludes[*]} -gt 0 -o ${#workdir_includes[*]} ]; then
|
||||
# on a spécifié des inclusions ou exclusions pour le répertoire de
|
||||
# travail
|
||||
(
|
||||
for exclude in "${workdir_excludes[@]}"; do
|
||||
array_add __CPNOVCS_RSYNC_ARGS --exclude "$exclude"
|
||||
done
|
||||
for include in "${workdir_includes[@]}"; do
|
||||
array_add __CPNOVCS_RSYNC_ARGS --include "$include"
|
||||
done
|
||||
cd "$srcdir"
|
||||
"${UINST_COPY_METHOD:-cpdirnovcs}" . "$destdir"
|
||||
)
|
||||
else
|
||||
# copie simple du répertoire de travail
|
||||
"${UINST_COPY_METHOD:-cpdirnovcs}" "$srcdir" "$destdir"
|
||||
fi
|
||||
|
||||
srcdir="$1/$srcname"
|
||||
srcdir="$destdir"
|
||||
chmod -R +w "$srcdir" || return 1
|
||||
return 0
|
||||
}
|
||||
|
|
8
udir
8
udir
|
@ -87,6 +87,14 @@ install_profiles
|
|||
profiledir Répertoire source pour les fichiers à copier dans ~/etc/profile.d
|
||||
bashrcdir Répertoire source pour les fichiers à copier dans ~/etc/bashrc.d
|
||||
defaultdir Répertoire source pour les fichiers à copier dans ~/etc/default.d
|
||||
workdir_excludes
|
||||
workdir_includes
|
||||
Fichiers à exclure (resp. inclure) pour construire le répertoire de
|
||||
travail avec uinst. C'est à partir du répertoire de travail que sont
|
||||
déployés les fichiers.
|
||||
La copie se faisant avec rsync, workdir_excludes spécifie les
|
||||
fichiers à exclure. workdir_includes permet de forcer l'inclusion de
|
||||
fichiers qui seraient exclus autrement.
|
||||
copy_files Faut-il copier les fichiers sources dans le répertoire de
|
||||
destination? Les fichiers sources et le répertoire de
|
||||
destination sont calculés à partir des valeurs des variables
|
||||
|
|
Loading…
Reference in New Issue