--- /dev/null
+#!/usr/bin/env python
+
+class FilterModule(object):
+ def filters(self):
+ return {'json_env_map': self.json_env_map}
+
+ def json_env_map(self, env):
+ return [{'name': k, 'value': str(v)} for k,v in env.items()]
CONFIGURATION_FILE: "{{ clever_login_file }}"
- name: Push Environment
- shell: "clever env import < {{ clever_app_confdir }}/env"
+ shell: "clever env import --json < {{ clever_app_confdir }}/env"
args:
chdir: "{{ clever_app_root }}"
environment:
-{% for key, value in (clever_base_env | combine(clever_env)).items() %}
-{{ key }}={{ value | to_json }}
-{% endfor %}
-
-{%- if clever_haskell_entry_point %}
+{% set static_env = clever_base_env | combine(clever_env) %}
+{% set dynamic_env = {} %}
+{% if clever_haskell_entry_point %}
{# Haskell only #}
{# https://www.clever-cloud.com/doc/get-help/reference-environment-variables/#haskell #}
-CC_RUN_COMMAND={{'~/.local/bin/' + clever_haskell_entry_point | to_json }}
+{% set dynamic_env = { 'CC_RUN_COMMAND': '~/.local/bin/' + clever_haskell_entry_point } %}
{% endif %}
+{# dict2items is not enough here, all the values have to be stringified #}
+{# git-blame this line for more explanations #}
+{{ static_env | combine(dynamic_env) | json_env_map | to_json }}