From 2dd145bede1bcd0878b78ae6dba5128f810190f5 Mon Sep 17 00:00:00 2001 From: Adrien Waksberg Date: Thu, 20 Jan 2022 09:54:06 +0100 Subject: [PATCH] fix: add multiple value type in service vars --- templates/services.conf.j2 | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/templates/services.conf.j2 b/templates/services.conf.j2 index c2c4f68..0633c9b 100644 --- a/templates/services.conf.j2 +++ b/templates/services.conf.j2 @@ -20,9 +20,27 @@ apply Service "{{ name }}" { {% endif %} {% if service.vars is defined %} -{% for var_name, value in service.vars.items() %} - vars.{{ var_name }} = {% if value is number %}{{ value }}{% else %}"{{ value|replace('\n', ' ') }}"{% endif %} +{% for var, value in service.vars.items() %} +{% if value is sameas True %} + vars.{{ var }} = true +{% elif value is sameas False %} + vars.{{ var }} = false +{% elif value is mapping %} +{% for name, config in value.items() %} + vars.{{ var }}["{{ name }}"] = { +{% for option, v in config.items() %} + {{ option }} = {% if v is number %}{{ v }}{% else %}"{{ v|replace('\n', ' ')|trim }}"{% endif %} +{% endfor %} + } +{% endfor %} +{% elif value is iterable and not value is string %} + vars.{{ var }} = [ "{{ value|join(', "') }}" ] +{% elif value is number or value|regex_search('^[0-9]+(s|m|h|d)$') %} + vars.{{ var }} = {{ value }} +{% else %} + vars.{{ var }} = "{{ value|replace('\n', ' ')|trim }}" +{% endif %} {% endfor %} {% endif %} }