diff options
Diffstat (limited to 'tools/readconfig.py')
-rw-r--r-- | tools/readconfig.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/tools/readconfig.py b/tools/readconfig.py index 69531ca..028e319 100644 --- a/tools/readconfig.py +++ b/tools/readconfig.py @@ -5,16 +5,19 @@ import yaml import base64 import sys +def render_path(path): + if path: + return "'" + ", ".join(path) + "'" + else: + return "the top level" + class ErrorHandlingDict(dict): def __init__(self, filename, path): self._filename = filename self._path = path dict.__init__({}) def __missing__(self, key): - if self._path: - path = ", ".join(self._path) - else: - path = "the top level" + path = render_path(self._path) print >>sys.stderr, "error: could not find configuration key '%s' at %s in %s" % (key, path, self._filename) sys.exit(1) @@ -52,8 +55,9 @@ def verify_and_read_config(filename, publickey_base64): signature = open(filename + ".sig").read() verify_config(rawconfig, signature, publickey_base64, filename) - - return errorhandlify(yaml.load(io.BytesIO(rawconfig), yaml.SafeLoader), filename) + config = yaml.load(io.BytesIO(rawconfig), yaml.SafeLoader) + return errorhandlify(config, filename) def read_config(filename): - return errorhandlify(yaml.load(open(filename), yaml.SafeLoader), filename) + config = yaml.load(open(filename), yaml.SafeLoader) + return errorhandlify(config, filename) |