summaryrefslogtreecommitdiffstats
path: root/gallery_dl/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/config.py')
-rw-r--r--gallery_dl/config.py15
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"""