From 34193de158b9ba0eee7b9eb372b6278ca615e6f3 Mon Sep 17 00:00:00 2001 From: Brent Date: Tue, 3 May 2016 20:41:14 -0500 Subject: [PATCH] Update yaml parser for handling environment variables (#1967) --- homeassistant/util/yaml.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/homeassistant/util/yaml.py b/homeassistant/util/yaml.py index 1c9ff8c1c16..8768de5d2f7 100644 --- a/homeassistant/util/yaml.py +++ b/homeassistant/util/yaml.py @@ -64,6 +64,17 @@ def _ordered_dict(loader, node): return OrderedDict(nodes) + +def _env_var_yaml(loader, node): + """Load environment variables and embed it into the configuration YAML.""" + if node.value in os.environ: + return os.environ[node.value] + else: + _LOGGER.error("Environment variable %s not defined.", node.value) + raise HomeAssistantError(node.value) + + yaml.SafeLoader.add_constructor('!include', _include_yaml) yaml.SafeLoader.add_constructor(yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, _ordered_dict) +yaml.SafeLoader.add_constructor('!env_var', _env_var_yaml)