From e9d3897d156efef0107244a360cf913fa02eef9b Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Fri, 24 Oct 2014 01:24:56 +0400 Subject: [PATCH] =?UTF-8?q?ignorer=20par=20d=C3=A9faut=20les=20fichiers=20?= =?UTF-8?q?ayant=20l'extension=20.template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apacheconfig | 3 ++- lib/ulib/template | 12 ++++++++++-- runsconfig | 3 ++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/apacheconfig b/apacheconfig index 592ad3c..50fc704 100755 --- a/apacheconfig +++ b/apacheconfig @@ -19,7 +19,8 @@ répertoire de référence appelé répertoire local, avant son déploiement. Lister les templates disponibles. -m, --merge Copier les templates spécifiés dans le répertoire local s'il n'y - existent pas déjà + existent pas déjà. Les templates ayant l'extension '.template' doivent + être demandés explicitement. Sinon, ils sont ignorés. -z, --unmerge Supprimer les fichiers du répertoire local s'ils n'ont pas été modifiés par rapport aux templates. diff --git a/lib/ulib/template b/lib/ulib/template index b153ad8..8f316cb 100644 --- a/lib/ulib/template +++ b/lib/ulib/template @@ -149,6 +149,8 @@ function template_merge() { # Copier dans le répertoire destination $2 tous les fichiers provenant du # répertoire source $1 correspondant aux spécifications $3..@, si ces fichiers # n'ont pas été modifiés dans le répertoire de destination. +# Les fichiers sources ayant l'extension .template sont ignorés par défaut, sauf +# s'ils sonts demandés explicitement. local srcdir="$1"; shift __template_check_srcdir "$srcdir" || return 1 setx srcdir=abspath "$srcdir" @@ -161,9 +163,10 @@ function template_merge() { local tmpfile; __template_setup_tmpfile - local spec srcspec src content dest + local spec template srcspec src content dest local srcfiles for spec in "$@"; do + setb template=[ "${spec%.template}" != "$spec" ] setx srcspec=__template_prel_abspath "$spec" if ! withinpath "$destdir" "$srcspec"; then ewarn "$spec: fichier ignoré" @@ -174,10 +177,15 @@ function template_merge() { [ -e "$srcdir$srcspec" ] || continue ebegin "$(ppath "$destdir$srcspec")" s=0 - array_from_lines srcfiles "$(find "$srcdir$srcspec" -type f)" + if [ -n "$template" ]; then + array_from_lines srcfiles "$(find "$srcdir$srcspec" -type f)" + else + array_from_lines srcfiles "$(find "$srcdir$srcspec" -type f | grep -v '\.template$')" + fi for src in "${srcfiles[@]}"; do setx content=__template_fillvars "$src" "$tmpfile" dest="$destdir/${src#$srcdir/}" + [ -n "$template" ] && dest="${dest%.template}" if [ -L "$dest" ]; then edotw 0 "LOCALLY MODIFIED: $(ppath "$dest")" diff --git a/runsconfig b/runsconfig index 1fdc0fc..97958ab 100755 --- a/runsconfig +++ b/runsconfig @@ -16,7 +16,8 @@ OPTIONS Lister les templates disponibles. -m, --merge Copier les templates spécifiés dans le répertoire d'hôte s'il n'y - existent pas déjà + existent pas déjà. Les templates ayant l'extension '.template' doivent + être demandés explicitement. Sinon, ils sont ignorés. -z, --unmerge Supprimer les fichiers du répertoire d'hôte s'ils n'ont pas été modifiés par rapport aux templates.