110 lines
4.6 KiB
Markdown
110 lines
4.6 KiB
Markdown
# ulib/template
|
|
|
|
## `template_list`
|
|
~~~
|
|
Soit $N le séparateur --, lister les fichiers des répertoires sources
|
|
$2..$(N-1) qui seraient fusionnés avec template_merge() ou supprimés avec
|
|
template_unmerge() du répertoire destination $1. Si des chemins sont spécifiés
|
|
avec les arguments $(N+1)..@, ne traiter que les fichiers qui correspondent à
|
|
ces spécifications. Exemple:
|
|
template_list destdir srcdirs... -- specs...
|
|
~~~
|
|
## `template_merge`
|
|
~~~
|
|
Soit $N le séparateur --, copier dans le répertoire destination $1 les
|
|
fichiers des répertoires sources $2..$(N-1) correspondant aux spécifications
|
|
$(N+1)..@, si ces fichiers n'ont pas été modifiés dans le répertoire de
|
|
destination.
|
|
Les fichiers sources ayant l'extension .template sont ignorés par défaut, sauf
|
|
s'ils sonts demandés explicitement. Exemple:
|
|
template_merge destdir srcdirs... -- specs...
|
|
~~~
|
|
## `template_unmerge`
|
|
~~~
|
|
Soit $N le séparateur --, supprimer du répertoire destination $1 les fichiers
|
|
provenant des répertoires sources $2..$(N-1) et qui n'ont pas été modifiés. Si
|
|
des chemins sont spécifiés avec les arguments $(N+1)..@, ne traiter que les
|
|
fichiers qui correspondent à ces spécifications. Exemple:
|
|
template_unmerge destdir srcdirs... -- specs...
|
|
~~~
|
|
## `template_cleandest`
|
|
~~~
|
|
Supprimer dans le répertoire de destination $1 tous les répertoires vides.
|
|
Cette fonction est habituellement utilisée après template_unmerge()
|
|
Ignorer les chemins qui contiennent .git/ et .svn/
|
|
~~~
|
|
## `template_diff`
|
|
~~~
|
|
Afficher les différences entre les fichiers du répertoire de destination $1 et
|
|
les fichiers des répertoires sources $2..@
|
|
~~~
|
|
## `template_srcdir`
|
|
~~~
|
|
Obtenir le chemin vers le répertoire source de templates $1, situé dans
|
|
ULIBDIR/templates
|
|
~~~
|
|
## `template_build_vars`
|
|
~~~
|
|
Initialiser les tableaux $1 et $2 avec la description des variables $3..@
|
|
les descriptions sont de la forme var[:depvars,...]=desc
|
|
$1 reçoit les noms (depvars... var) parce que les variables dépendantes
|
|
doivent toujours être placées AVANT la variable maitre
|
|
$2 reçoit les noms (depvars...)
|
|
pour chaque description, une variable __TEMPLATE_DESC_var est créée avec
|
|
la valeur desc
|
|
~~~
|
|
## `templatectl_config`
|
|
~~~
|
|
Obtenir le chemin vers le fichier de configuration pour le répertoire $1 Si
|
|
l'un des fichiers CONFIG.conf ou .CONFIG existent déjà, prendre ceux-là.
|
|
Sinon, si $2==nohideconfig, utiliser le nom CONFIG.conf, sinon utiliser
|
|
.CONFIG
|
|
~~~
|
|
## `templatectl_loadvars`
|
|
~~~
|
|
Charger les valeurs des variables depuis le fichier $1
|
|
Les variables suivantes doivent être définies:
|
|
- Le tableau TEMPLATECTL_DEFAULTS permet de donner une valeur par défaut aux
|
|
variables mentionnées dans TEMPLATE_STATIC_VARS. C'est une liste de valeurs
|
|
de la forme 'name=value'
|
|
- Le tableau TEMPLATECTL_VARS contient des variables supplémentaires
|
|
spécifiées par l'utilisateur. C'est une liste de valeurs de la forme
|
|
'name=value'
|
|
- TEMPLATE_STATIC_VARS doit contenir une liste de noms de variables qui
|
|
peuvent être remplacés dans les fichiers de template.
|
|
- TEMPLATE_DYNAMIC_VARS contient une liste de noms de variables valides, mais
|
|
qui ne doivent pas être remplacés, en effet, ils sont utilisés pour le
|
|
déploiement des fichiers.
|
|
- TEMPLATE_NOWRITE_VARS contient une liste de noms de variables qui ne
|
|
devraient pas être écrits dans le fichier des variables, sauf si elles
|
|
reçoivent une valeur explicite de la part de l'utilisateur. Ce tableau est
|
|
mis à jour lors de l'analyse du tableau TEMPLATECTL_VARS
|
|
- TEMPLATE_USER_VARS contient une liste de noms de tableaux qui sont définis
|
|
en plus et qui peuvent être utilisés par des scripts annexes
|
|
~~~
|
|
## `templatectl_writevars`
|
|
~~~
|
|
Ecrire les variables dans le fichier $1
|
|
~~~
|
|
## `templatectl_list_vars`
|
|
~~~
|
|
Afficher les valeurs des variables
|
|
~~~
|
|
## `templatectl`
|
|
~~~
|
|
Fonction de haut niveau qui facilite l'utilisation des fonctions template_*
|
|
définir la fonction __display_templatectl_help() pour l'affichage de l'aide
|
|
- Le tableau TEMPLATECTL_SRCDIRS doit contenir la liste des répertoires
|
|
sources pour les templates. Alternativement, il est possible de définir la
|
|
variable TEMPLATECTL_SRCDIR s'il n'y a qu'un seul répertoire source pour le
|
|
template
|
|
- TEMPLATECTL_CONFIG est le nom de base du fichier à partir duquel sont
|
|
chargées les variables et dans lequel sont écrites les variables avec
|
|
l'option --write-vars
|
|
Si le nom de base est CONFIG, le fichier s'appelera .CONFIG si l'option
|
|
--hide-config est utilisée (par défaut) ou CONFIG.conf si l'option
|
|
--no-hide-config est utilisée
|
|
Les variables de template_loadvars() sont aussi prises en compte
|
|
~~~
|
|
|
|
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary |