diff options
Diffstat (limited to 'gallery_dl/config.py')
| -rw-r--r-- | gallery_dl/config.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gallery_dl/config.py b/gallery_dl/config.py index 0b2aca8..4be6c53 100644 --- a/gallery_dl/config.py +++ b/gallery_dl/config.py @@ -90,22 +90,22 @@ def initialize(): return 0 -def load(files=None, strict=False, load=util.json_loads): +def load(files=None, strict=False, loads=util.json_loads): """Load JSON configuration files""" for pathfmt in files or _default_configs: path = util.expand_path(pathfmt) try: with open(path, encoding="utf-8") as file: - conf = load(file.read()) + conf = loads(file.read()) except OSError as exc: if strict: log.error(exc) - sys.exit(1) + raise SystemExit(1) except Exception as exc: log.error("%s when loading '%s': %s", exc.__class__.__name__, path, exc) if strict: - sys.exit(2) + raise SystemExit(2) else: if not _config: _config.update(conf) @@ -113,6 +113,13 @@ def load(files=None, strict=False, load=util.json_loads): util.combine_dict(_config, conf) _files.append(pathfmt) + if "subconfigs" in conf: + subconfigs = conf["subconfigs"] + if subconfigs: + if isinstance(subconfigs, str): + subconfigs = (subconfigs,) + load(subconfigs, strict, loads) + def clear(): """Reset configuration to an empty state""" |
