ajout de workdir_excludes et workdir_includes, particulièrement utile avec copy_files=false

This commit is contained in:
2015-01-09 10:33:42 +04:00
parent 3fc57711b5
commit 07383052ca
2 changed files with 33 additions and 4 deletions

View File

@@ -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"
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="$destdir"
chmod -R +w "$srcdir" || return 1
return 0
}