From 2e81276b44f672b9ca026650d930fefb85723abd Mon Sep 17 00:00:00 2001 From: Kirill Smelkov Date: Thu, 7 Jan 2016 18:29:02 +0300 Subject: [PATCH] gitlab: Introduce macro library Introduce a library of Jinja2 macros that will be handy to use in templates. For now we add only 2 macros: cfg(name) - to get instance configuration parameter `name`, and cfg_bool - to get truth value of ----//---- The reason we introduce cfg() is that we will need to use a lot of parameters in many places and it is much more handy to write, e.g. cfg('email_enabled') compared to instance_parameter:configuration.email_enabled /cc @kazuhiko, @jerome --- software/gitlab/instance-gitlab.cfg.in | 2 ++ software/gitlab/instance.cfg.in | 1 + software/gitlab/macrolib.cfg.in | 8 ++++++++ software/gitlab/software.cfg | 4 ++++ 4 files changed, 15 insertions(+) create mode 100644 software/gitlab/macrolib.cfg.in diff --git a/software/gitlab/instance-gitlab.cfg.in b/software/gitlab/instance-gitlab.cfg.in index e7892bba43..57c2a1a562 100644 --- a/software/gitlab/instance-gitlab.cfg.in +++ b/software/gitlab/instance-gitlab.cfg.in @@ -127,6 +127,8 @@ mode = 0700 recipe = slapos.recipe.template:jinja2 extensions = jinja2.ext.do mode = 0640 +import-list = + rawfile macrolib.cfg.in {{ macrolib_cfg_in }} context = raw autogenerated # This file was autogenerated. (DO NOT EDIT - changes will be lost) section instance_parameter instance-parameter diff --git a/software/gitlab/instance.cfg.in b/software/gitlab/instance.cfg.in index e6cf79ab43..59452d6255 100644 --- a/software/gitlab/instance.cfg.in +++ b/software/gitlab/instance.cfg.in @@ -41,6 +41,7 @@ context = raw gitlab_parameters_cfg ${gitlab-parameters.cfg:target} raw gitlab_shell_config_yml_in ${gitlab-shell-config.yml.in:target} raw gitlab_yml_in ${gitlab.yml.in:target} + raw macrolib_cfg_in ${macrolib.cfg.in:target} raw rack_attack_rb_in ${rack_attack.rb.in:target} raw resque_yml_in ${resque.yml.in:target} raw smtp_settings_rb_in ${smtp_settings.rb.in:target} diff --git a/software/gitlab/macrolib.cfg.in b/software/gitlab/macrolib.cfg.in new file mode 100644 index 0000000000..4ead04a80a --- /dev/null +++ b/software/gitlab/macrolib.cfg.in @@ -0,0 +1,8 @@ +{# common macros for gitlab instance #} + +{# cfg(name) -> instance_parameter:configuration. #} +{% macro cfg(name) %}{{ instance_parameter[str("configuration." + name)] }}{% endmacro %} + +{# cfg_bool(name) - like cfg(name), but returns 'true'/'' + NOTE macros can return only strings - that's why '' is used for false #} +{% macro cfg_bool(name) %}{{ 'true' if (cfg(name).lower() in ('true', 'yes')) else '' }}{% endmacro %} diff --git a/software/gitlab/software.cfg b/software/gitlab/software.cfg index 9ce0ed6f4e..a662d1d3c7 100644 --- a/software/gitlab/software.cfg +++ b/software/gitlab/software.cfg @@ -208,6 +208,10 @@ url = ${:_profile_base_location_}/template/${:_buildout_section_name_} <= download-file # md5sum = TODO +[macrolib.cfg.in] +<= download-file +# md5sum = TODO + [rack_attack.rb.in] <= download-template # md5sum = TODO -- 2.25.1