modifs pour faciliter l'override

This commit is contained in:
Jephté Clain 2024-03-13 16:23:52 +04:00
parent f659f293cb
commit ba33c7815f
1 changed files with 29 additions and 5 deletions

View File

@ -2,6 +2,17 @@
##@cooked nocomments ##@cooked nocomments
module: template "Mise à jour de templates à partir de modèles" 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 "\ function: template_copy_replace "\
Copier \$1 vers \$2 de façon inconditionnelle Copier \$1 vers \$2 de façon inconditionnelle
@ -54,20 +65,33 @@ function template_copy_missing() {
function: template_dump_vars "\ function: template_dump_vars "\
Lister les variables mentionnées dans les fichiers \$@ 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() { function template_dump_vars() {
_template_dump_vars "$@"
}
function _template_dump_vars() {
cat "$@" | cat "$@" |
grep -E '^[A-Z][A-Za-z_]*=' | grep -E '^[A-Z][A-Za-z_]*=' |
sed 's/=.*//' | sed 's/=.*//' |
sort -u sort -u
} }
function: template__source_envs "\ function: template_source_envs "\
Cette fonction doit être implémentée par l'utilisateur et doit: 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 le tableau template_vars qui donne la liste des variables scalaires
- initialiser te tableau template_lists qui donne la liste des variables listes - initialiser te tableau template_lists qui donne la liste des variables listes
- charger ces variables depuis les fichiers \$@" - charger ces variables depuis les fichiers \$@
function template__source_envs() {
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_ local e_
for e_ in "$@"; do for e_ in "$@"; do
[ -f "$e_" ] && source "$e_" [ -f "$e_" ] && source "$e_"
@ -98,7 +122,7 @@ function template_generate_scripts() {
local awkscript="$1"; shift local awkscript="$1"; shift
local sedscript="$1"; shift local sedscript="$1"; shift
( (
template__source_envs "$@" template_source_envs "$@"
NL=$'\n' NL=$'\n'
# random, for # random, for