From b55870909cc3e74630f008fa4fb91e247726247c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sat, 14 Nov 2015 17:22:56 +0100 Subject: [PATCH] properly implement -c,--config option --- gallery_dl/__init__.py | 11 +++++++---- gallery_dl/config.py | 4 +++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gallery_dl/__init__.py b/gallery_dl/__init__.py index 990aaec0..6b8ee49a 100644 --- a/gallery_dl/__init__.py +++ b/gallery_dl/__init__.py @@ -24,13 +24,13 @@ def build_cmdline_parser(): description='Download images from various sources') parser.add_argument( "-c", "--config", - default="~/.config/gallery/config", metavar="CFG", - help="alternate configuration file" + metavar="CFG", dest="cfgfiles", action="append", + help="additional configuration files", ) parser.add_argument( "-d", "--dest", metavar="DEST", - help="destination directory" + help="destination directory", ) parser.add_argument( "-o", "--option", @@ -43,7 +43,7 @@ def build_cmdline_parser(): ) parser.add_argument( "--list-keywords", dest="keywords", action="store_true", - help="print a list of available keywords", + help="print a list of available keywords for the given URLs", ) parser.add_argument( "urls", @@ -58,6 +58,9 @@ def main(): parser = build_cmdline_parser() args = parser.parse_args() + if args.cfgfiles: + config.load(*args.cfgfiles, strict=True) + if args.dest: config.set(("base-directory",), args.dest) diff --git a/gallery_dl/config.py b/gallery_dl/config.py index e351a810..2bc9ead1 100644 --- a/gallery_dl/config.py +++ b/gallery_dl/config.py @@ -16,7 +16,7 @@ import platform # -------------------------------------------------------------------- # public interface -def load(*files): +def load(*files, strict=False): """Load JSON configuration files""" configfiles = files or _default_configs for conf in configfiles: @@ -26,6 +26,8 @@ def load(*files): confdict = json.load(file) _config.update(confdict) except FileNotFoundError: + if strict: + raise continue except json.decoder.JSONDecodeError as exception: print("Error while loading '", path, "':", sep="", file=sys.stderr)