template ignore les fichiers binaires (implémentation gros doigt)

This commit is contained in:
Jephté Clain 2025-03-17 20:24:34 +04:00
parent 2cdc059810
commit 8cbe9c7654
2 changed files with 20 additions and 13 deletions

View File

@ -19,7 +19,8 @@ Copier \$1 vers \$2 de façon inconditionnelle
Si \$2 n'est pas spécifié, on assume que \$1 est de la forme '.file.ext'
et \$2 vaudra alors 'file'
si un fichier \${2#.}.local existe, prendre ce fichier à la place comme source
si un fichier \${2#.}.local existe (e.g 'file.ext.local'), prendre ce fichier à
la place comme source
Ajouter file au tableau userfiles"
function template_copy_replace() {
@ -47,7 +48,8 @@ Copier \$1 vers \$2 si ce fichier n'existe pas déjà
Si \$2 n'est pas spécifié, on assume que \$1 est de la forme '.file.ext'
et \$2 vaudra alors 'file'
si un fichier \${2#.}.local existe, prendre ce fichier à la place comme source
si un fichier \${1#.}.local existe (e.g 'file.ext.local'), prendre ce fichier à
la place comme source
Ajouter file au tableau userfiles"
function template_copy_missing() {
@ -205,6 +207,18 @@ function template_generate_scripts() {
#etitle "sedscript" cat "$sedscript"
}
function: _template_can_process "\
Indiquer si \$1 est un fichier texte, qui peut être traité par
template_process_userfiles"
function _template_can_process() {
case "$1" in
*.png|*.jpg|*.gif|*.bmp) return 1;;
*.zip|*.jar|*.war|*.ear) return 1;;
*.tar|*.gz|*.tgz|*.bz2|*.tbz2) return 1;;
*) return 0;;
esac
}
function template_process_userfiles() {
local awkscript sedscript workfile userfile
ac_set_tmpfile awkscript
@ -213,6 +227,7 @@ function template_process_userfiles() {
ac_set_tmpfile workfile
for userfile in "${userfiles[@]}"; do
_template_can_process "$userfile" || continue
if cat "$userfile" | awk -f "$awkscript" | sed -rf "$sedscript" >"$workfile"; then
if testdiff "$workfile" "$userfile"; then
# n'écrire le fichier que s'il a changé

View File

@ -81,17 +81,9 @@ function build_check_env() {
updated=1
setx distname=basename -- "$distfile"
distname="${distname#.}"; distname="${distname%.dist}"
# ignorer les fichiers binaires
#XXX remplacer par un code plus robuste, peut-être à
# intégrer directement dans template:
case "$distname" in
*.png|*.jpg) ;;
*)
setx distfile=dirname -- "$distfile"
distfile="$distfile/$distname"
updatedfiles+=("${distfile#$PROJDIR/}")
;;
esac
setx distfile=dirname -- "$distfile"
distfile="$distfile/$distname"
updatedfiles+=("${distfile#$PROJDIR/}")
fi
done
else