# 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 ~~~ ## `templatectl_config` ~~~ Obtenir le chemin vers le fichier de configuration pour le répertoire $1 Si $2==nohideconfig, utiliser le nom CONFIG.conf, sinon utiliser par défaut .CONFIG sauf si le fichier CONFIG.conf existe ~~~ ## `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 ~~~ ## `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