add jinja2 templating

This commit is contained in:
2021-02-20 18:01:13 +01:00
parent 807842e680
commit 20d8242d47
50 changed files with 292 additions and 47 deletions

View File

@ -3,6 +3,7 @@
<services>
<service name='test'>
<file>/etc/mailname</file>
<file engine="jinja2">/etc/mailname2</file>
</service>
</services>
<variables>

View File

@ -1 +1 @@
{"rougail.general.mode_conteneur_actif": "non", "rougail.general.condition": "oui", "rougail.general.leader.leader": [{"rougail.general.leader.leader": "a", "rougail.general.leader.follower2": null}, {"rougail.general.leader.leader": "b", "rougail.general.leader.follower1": null, "rougail.general.leader.follower2": null}], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true}
{"rougail.general.mode_conteneur_actif": "non", "rougail.general.condition": "oui", "rougail.general.leader.leader": [{"rougail.general.leader.leader": "a", "rougail.general.leader.follower2": null}, {"rougail.general.leader.leader": "b", "rougail.general.leader.follower1": null, "rougail.general.leader.follower2": null}], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "jinja2", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": "/etc/mailname2", "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.activate": true}

View File

@ -0,0 +1,5 @@
leader: a
follower2:
leader: b
follower1:
follower2:

View File

@ -1,2 +1,4 @@
C /etc/mailname 0644 root root - /usr/local/lib/etc/mailname
z /etc/mailname - - - - -
C /etc/mailname2 0644 root root - /usr/local/lib/etc/mailname2
z /etc/mailname2 - - - - -

View File

@ -27,7 +27,15 @@ option_17 = StrOption(name="owner", doc="owner", default="root")
option_18 = StrOption(name="source", doc="source", default="mailname")
option_19 = BoolOption(name="activate", doc="activate", default=True)
option_12 = OptionDescription(name="mailname", doc="mailname", children=[option_13, option_14, option_15, option_16, option_17, option_18, option_19])
option_11 = OptionDescription(name="files", doc="files", children=[option_12])
option_21 = StrOption(name="engine", doc="engine", default="jinja2")
option_22 = StrOption(name="group", doc="group", default="root")
option_23 = StrOption(name="mode", doc="mode", default="0644")
option_24 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
option_25 = StrOption(name="owner", doc="owner", default="root")
option_26 = StrOption(name="source", doc="source", default="mailname2")
option_27 = BoolOption(name="activate", doc="activate", default=True)
option_20 = OptionDescription(name="mailname2", doc="mailname2", children=[option_21, option_22, option_23, option_24, option_25, option_26, option_27])
option_11 = OptionDescription(name="files", doc="files", children=[option_12, option_20])
option_10 = OptionDescription(name="test", doc="test", children=[option_11])
option_9 = OptionDescription(name="services", doc="services", children=[option_10], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_9])

View File

@ -0,0 +1,9 @@
{% for lead in leader -%}
leader: {{ lead }}
{% if lead.follower1 is defined -%}
follower1: {{ lead.follower1 if lead.follower1 }}
{% endif -%}
{% if lead.follower2 is defined -%}
follower2: {{ lead.follower2 if lead.follower2 }}
{% endif -%}
{% endfor -%}