ignorer par défaut les fichiers ayant l'extension .template

This commit is contained in:
Jephte CLAIN 2014-10-24 01:24:56 +04:00
parent 92f9b80cdd
commit e9d3897d15
3 changed files with 14 additions and 4 deletions

View File

@ -19,7 +19,8 @@ répertoire de référence appelé répertoire local, avant son déploiement.
Lister les templates disponibles. Lister les templates disponibles.
-m, --merge -m, --merge
Copier les templates spécifiés dans le répertoire local s'il n'y 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 -z, --unmerge
Supprimer les fichiers du répertoire local s'ils n'ont pas été modifiés Supprimer les fichiers du répertoire local s'ils n'ont pas été modifiés
par rapport aux templates. par rapport aux templates.

View File

@ -149,6 +149,8 @@ function template_merge() {
# Copier dans le répertoire destination $2 tous les fichiers provenant du # Copier dans le répertoire destination $2 tous les fichiers provenant du
# répertoire source $1 correspondant aux spécifications $3..@, si ces fichiers # répertoire source $1 correspondant aux spécifications $3..@, si ces fichiers
# n'ont pas été modifiés dans le répertoire de destination. # 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 local srcdir="$1"; shift
__template_check_srcdir "$srcdir" || return 1 __template_check_srcdir "$srcdir" || return 1
setx srcdir=abspath "$srcdir" setx srcdir=abspath "$srcdir"
@ -161,9 +163,10 @@ function template_merge() {
local tmpfile; __template_setup_tmpfile local tmpfile; __template_setup_tmpfile
local spec srcspec src content dest local spec template srcspec src content dest
local srcfiles local srcfiles
for spec in "$@"; do for spec in "$@"; do
setb template=[ "${spec%.template}" != "$spec" ]
setx srcspec=__template_prel_abspath "$spec" setx srcspec=__template_prel_abspath "$spec"
if ! withinpath "$destdir" "$srcspec"; then if ! withinpath "$destdir" "$srcspec"; then
ewarn "$spec: fichier ignoré" ewarn "$spec: fichier ignoré"
@ -174,10 +177,15 @@ function template_merge() {
[ -e "$srcdir$srcspec" ] || continue [ -e "$srcdir$srcspec" ] || continue
ebegin "$(ppath "$destdir$srcspec")" ebegin "$(ppath "$destdir$srcspec")"
s=0 s=0
if [ -n "$template" ]; then
array_from_lines srcfiles "$(find "$srcdir$srcspec" -type f)" 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 for src in "${srcfiles[@]}"; do
setx content=__template_fillvars "$src" "$tmpfile" setx content=__template_fillvars "$src" "$tmpfile"
dest="$destdir/${src#$srcdir/}" dest="$destdir/${src#$srcdir/}"
[ -n "$template" ] && dest="${dest%.template}"
if [ -L "$dest" ]; then if [ -L "$dest" ]; then
edotw 0 "LOCALLY MODIFIED: $(ppath "$dest")" edotw 0 "LOCALLY MODIFIED: $(ppath "$dest")"

View File

@ -16,7 +16,8 @@ OPTIONS
Lister les templates disponibles. Lister les templates disponibles.
-m, --merge -m, --merge
Copier les templates spécifiés dans le répertoire d'hôte s'il n'y 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 -z, --unmerge
Supprimer les fichiers du répertoire d'hôte s'ils n'ont pas été modifiés Supprimer les fichiers du répertoire d'hôte s'ils n'ont pas été modifiés
par rapport aux templates. par rapport aux templates.