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
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