From ba33c7815f6477151dd43b411e9cc951f20b3165 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Wed, 13 Mar 2024 16:23:52 +0400 Subject: [PATCH] modifs pour faciliter l'override --- bash/src/template.sh | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/bash/src/template.sh b/bash/src/template.sh index ad200ff..0d16950 100644 --- a/bash/src/template.sh +++ b/bash/src/template.sh @@ -2,6 +2,17 @@ ##@cooked nocomments module: template "Mise à jour de templates à partir de modèles" +function: template_locals "\ +Afficher les variables qui doivent être locales + +Utiliser de cette façon: +~~~ +eval \$(template_locals) +~~~" +function template_locals() { + echo "local -a userfiles; local updated" +} + function: template_copy_replace "\ Copier \$1 vers \$2 de façon inconditionnelle @@ -54,20 +65,33 @@ function template_copy_missing() { function: template_dump_vars "\ Lister les variables mentionnées dans les fichiers \$@ -Seules sont prises en compte les variables dont le nom est de la forme [A-Z][A-Za-z_]*" +Seules sont prises en compte les variables dont le nom est de la forme +[A-Z][A-Za-z_]* + +Cette fonction est utilisée par template_source_envs(). Elle utilise la +fonction outil _template_dump_vars() qui peut être redéfinie si nécessaire." function template_dump_vars() { + _template_dump_vars "$@" +} +function _template_dump_vars() { cat "$@" | grep -E '^[A-Z][A-Za-z_]*=' | sed 's/=.*//' | sort -u } -function: template__source_envs "\ +function: template_source_envs "\ Cette fonction doit être implémentée par l'utilisateur et doit: - initialiser le tableau template_vars qui donne la liste des variables scalaires - initialiser te tableau template_lists qui donne la liste des variables listes -- charger ces variables depuis les fichiers \$@" -function template__source_envs() { +- charger ces variables depuis les fichiers \$@ + +Cette fonction utilise la fonction outil _template_source_envs() qui peut être +redéfinie si nécessaire." +function template_source_envs() { + _template_source_envs "$@" +} +function _template_source_envs() { local e_ for e_ in "$@"; do [ -f "$e_" ] && source "$e_" @@ -98,7 +122,7 @@ function template_generate_scripts() { local awkscript="$1"; shift local sedscript="$1"; shift ( - template__source_envs "$@" + template_source_envs "$@" NL=$'\n' # random, for