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 profiledir
|
||||||
local bashrcdir
|
local bashrcdir
|
||||||
local defaultdir
|
local defaultdir
|
||||||
|
local workdir_excludes
|
||||||
|
local workdir_includes
|
||||||
local copy_files
|
local copy_files
|
||||||
local destdir
|
local destdir
|
||||||
local srcdir
|
local srcdir
|
||||||
|
@ -180,6 +182,8 @@ function __uinst_init() {
|
||||||
profiledir='lib/profile.d'
|
profiledir='lib/profile.d'
|
||||||
bashrcdir='lib/bashrc.d'
|
bashrcdir='lib/bashrc.d'
|
||||||
defaultdir='lib/default'
|
defaultdir='lib/default'
|
||||||
|
workdir_excludes='()'
|
||||||
|
workdir_includes='()'
|
||||||
copy_files='true'
|
copy_files='true'
|
||||||
destdir='/usr/local'
|
destdir='/usr/local'
|
||||||
srcdir='.'
|
srcdir='.'
|
||||||
|
@ -361,7 +365,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 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() {
|
function __uinst_protectvars() {
|
||||||
|
@ -594,11 +598,28 @@ function __uinst_prepare_workdir() {
|
||||||
# Faire une copie de travail de $srcdir dans $1
|
# Faire une copie de travail de $srcdir dans $1
|
||||||
# srcdir est modifié pour devenir la nouvelle valeur
|
# srcdir est modifié pour devenir la nouvelle valeur
|
||||||
local srcname="$(basename "$srcdir")"
|
local srcname="$(basename "$srcdir")"
|
||||||
|
local destdir="$1/$srcname"
|
||||||
|
|
||||||
estep "Création d'une copie de travail dans $1..."
|
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
|
||||||
srcdir="$1/$srcname"
|
# 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
|
chmod -R +w "$srcdir" || return 1
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
8
udir
8
udir
|
@ -87,6 +87,14 @@ install_profiles
|
||||||
profiledir Répertoire source pour les fichiers à copier dans ~/etc/profile.d
|
profiledir Répertoire source pour les fichiers à copier dans ~/etc/profile.d
|
||||||
bashrcdir Répertoire source pour les fichiers à copier dans ~/etc/bashrc.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
|
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
|
copy_files Faut-il copier les fichiers sources dans le répertoire de
|
||||||
destination? Les fichiers sources et le répertoire de
|
destination? Les fichiers sources et le répertoire de
|
||||||
destination sont calculés à partir des valeurs des variables
|
destination sont calculés à partir des valeurs des variables
|
||||||
|
|
Loading…
Reference in New Issue