Intégration de la branche update-pff
This commit is contained in:
commit
7583dedaea
39
pff
39
pff
|
@ -29,6 +29,7 @@ PFFCONFVARS=(
|
|||
"PROTECTS=//Fichiers locaux à protéger lors de l'intégration e.g /dir/, /file, etc."
|
||||
"MKDIRS//Répertoires qui doivent toujours exister"
|
||||
"FILTERS//Filtres appliqués aux fichiers lors de l'intégration"
|
||||
"NOMERGES=//Fichiers qu'il ne faut pas chercher à fusionner"
|
||||
)
|
||||
|
||||
if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then
|
||||
|
@ -447,6 +448,27 @@ function get_vlfiles() {
|
|||
get_vlfiles_nostrip "$@" | sed "s|^$pffdir/pff/$profile/||"
|
||||
}
|
||||
|
||||
function is_nomerge() {
|
||||
local file="$1" pffdir="$2"
|
||||
local nomerge rfile
|
||||
setx rfile=get_rfile "$file" "$pffdir"
|
||||
setx file=basename -- "$rfile" # utilisé pour le match sur le nom du fichier
|
||||
for nomerge in "${NOMERGES[@]}"; do
|
||||
if [[ "$nomerge" == */* ]]; then
|
||||
# matcher sur le chemin relatif
|
||||
if eval "[[ $(qval "$rfile") == $(qwc "$nomerge") ]]"; then
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
# matcher uniquement sur le nom du fichier
|
||||
if eval "[[ $(qval "$file") == $(qwc "$nomerge") ]]"; then
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
function sync_vlfiles() {
|
||||
# synchroniser les fichiers de version $3..@ dans tous les répertoires de
|
||||
# profil, ou seulement le répertoire de profil $2 si la valeur n'est pas
|
||||
|
@ -986,6 +1008,15 @@ function patch_cmd() {
|
|||
have_base_vlfiles=
|
||||
for profile in "${profiles[@]}"; do
|
||||
array_from_lines vlfiles "$(get_vlfiles_nostrip "$pffdir" "" "$profile" "$version")"
|
||||
# filtrer les fichiers de NOMERGES
|
||||
mergefiles=()
|
||||
for vlfile in "${vlfiles[@]}"; do
|
||||
setx rfile=get_rfile "${vlfile%__pv-${version}__}" "$pffdir"
|
||||
is_nomerge "$rfile" "$pffdir" && continue
|
||||
array_add mergefiles "$vlfile"
|
||||
done
|
||||
vlfiles=("${mergefiles[@]}")
|
||||
# on en a trouvé
|
||||
if [ ${#vlfiles[*]} -gt 0 ]; then
|
||||
have_profile_vlfiles=1
|
||||
break
|
||||
|
@ -993,6 +1024,14 @@ function patch_cmd() {
|
|||
done
|
||||
[ -n "$have_profile_vlfiles" ] && break
|
||||
array_from_lines vlfiles "$(get_vlfiles_nostrip "$pffdir" "" Base "$version")"
|
||||
# filtrer les fichiers de NOMERGES
|
||||
mergefiles=()
|
||||
for vlfile in "${vlfiles[@]}"; do
|
||||
setx rfile=get_rfile "${vlfile%__pv-${version}__}" "$pffdir"
|
||||
is_nomerge "$rfile" "$pffdir" && continue
|
||||
array_add mergefiles "$vlfile"
|
||||
done
|
||||
vlfiles=("${mergefiles[@]}")
|
||||
have_base_vlfiles=1
|
||||
break
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue