Stop lovelace_gen from breaking all the yaml which is not in lovelace...

This commit is contained in:
2019-08-07 08:22:03 +02:00
parent 878a96c3b9
commit 483172d83c
2 changed files with 24 additions and 3 deletions

View File

@@ -3,6 +3,7 @@ import logging
import json
import io
import time
from collections import OrderedDict
import jinja2
@@ -15,9 +16,18 @@ jinja = jinja2.Environment(loader=jinja2.FileSystemLoader("/"))
def load_yaml(fname, args={}):
try:
stream = io.StringIO(jinja.get_template(fname).render(args))
stream.name = fname
return loader.yaml.load(stream, Loader=loader.SafeLineLoader) or {}
ll_gen = False
with open(fname, encoding="utf-8") as f:
if f.readline().lower().startswith("# lovelace_gen"):
ll_gen = True
if ll_gen:
stream = io.StringIO(jinja.get_template(fname).render(args))
stream.name = fname
return loader.yaml.load(stream, Loader=loader.SafeLineLoader) or OrderedDict()
else:
with open(fname, encoding="utf-8") as config_file:
return loader.yaml.load(config_file, Loader=loader.SafeLineLoader) or OrderedDict()
except loader.yaml.YAMLError as exc:
_LOGGER.error(str(exc))
raise HomeAssistantError(exc)