From 8cbe9c7654f1f099df8544caba2cc71d6b7596e0 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Mon, 17 Mar 2025 20:24:34 +0400 Subject: [PATCH] =?UTF-8?q?template=20ignore=20les=20fichiers=20binaires?= =?UTF-8?q?=20(impl=C3=A9mentation=20gros=20doigt)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bash/src/template.sh | 19 +++++++++++++++++-- runphp/build | 14 +++----------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/bash/src/template.sh b/bash/src/template.sh index 3201b6a..c3d3376 100644 --- a/bash/src/template.sh +++ b/bash/src/template.sh @@ -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é diff --git a/runphp/build b/runphp/build index 4e324d0..f87f43e 100755 --- a/runphp/build +++ b/runphp/build @@ -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