From f18a53d61ad17f3e04fbbfea77b20bbcfa2fb543 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Wed, 1 Sep 2021 13:52:40 +0200 Subject: [PATCH] adjust included attribute for file --- doc/service/file.md | 83 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 76 insertions(+), 7 deletions(-) diff --git a/doc/service/file.md b/doc/service/file.md index 589a5922..435d8846 100644 --- a/doc/service/file.md +++ b/doc/service/file.md @@ -162,13 +162,82 @@ Un attribut "included" permet de définir la nature du fichier. Cet attribut peu - "name" : le répertoire de destination est listé dans un autre template, il faut que le fichier soit généré avant cet autre template - "content" : le contenu du fichier est copié dans un autre template, il faut que le fichier soit généré avant cet autre template et ce fichier n'a pas besoin d'être installé sur le serveur cible. -Exemples : - -``` -/etc/squid/squid.conf -/etc/squid/squid.conf -``` - Bien entendu, c'est au développeur de lister ou d'inclure le contenu de ce template dans le fichier de destination. Cet attribut permet juste de garantir que le fichier sera fait avant l'autre et de ne pas l'installer sur le serveur si ce n'est pas nécessaire. Il est possible de personnaliser les methodes d'inclusion par défaut dans la [configuration de rougail](../dev/config.md) + +Exemples : + +- créons un template qui inclut des noms de fichiers : + +Le contenu de ce template (squid.conf) est : + +``` +%import os +%set %%confdir = 'etc/squid/squid.d/' +%if %%os.path.exists(%%confdir) + %set %%files = %%os.listdir(%%confdir) + %%files.sort() + %for %%file in %%files + %if %%file.endswith('.cfg') +include '/' + %%confdir + file + %end if + %end for +%end if +``` + +Ajoutons un second template (squid.included.conf) qui sera copié dans ce répertoire : + +``` +template content +``` + +Et déclaront ces deux templates : + +``` +/etc/squid/squid.conf +/etc/squid/squid.d/squid.conf +``` + +Le contenu du fichier généré (/etc/squid/squid.conf) sera donc : + +``` +include squid.d/squid.conf +``` + +- créons un template qui inclut le contenu de fichiers : + +Le contenu de ce template (squid.conf) est : + +``` +%import os +%set %%confdir = 'squid.d/' +%if %%os.path.exists(%%confdir) + %set %%files = %%os.listdir(%%confdir) + %%files.sort() + %for %%file in %%files + %if %%file.endswith('.cfg') +%include raw %%confdir + file + %end if + %end for +%end if +``` + +Ajoutons un second template (squid.included.conf) qui sera copié dans ce répertoire : + +``` +template content +``` + +Et déclaront ces deux templates : + +``` +/etc/squid/squid.conf +squid.d/squid.conf +``` + +Le contenu du fichier généré (/etc/squid/squid.conf) sera donc maintenant : + +``` +template content +```