properly implement -c,--config option
This commit is contained in:
@@ -24,13 +24,13 @@ def build_cmdline_parser():
|
|||||||
description='Download images from various sources')
|
description='Download images from various sources')
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-c", "--config",
|
"-c", "--config",
|
||||||
default="~/.config/gallery/config", metavar="CFG",
|
metavar="CFG", dest="cfgfiles", action="append",
|
||||||
help="alternate configuration file"
|
help="additional configuration files",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-d", "--dest",
|
"-d", "--dest",
|
||||||
metavar="DEST",
|
metavar="DEST",
|
||||||
help="destination directory"
|
help="destination directory",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-o", "--option",
|
"-o", "--option",
|
||||||
@@ -43,7 +43,7 @@ def build_cmdline_parser():
|
|||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--list-keywords", dest="keywords", action="store_true",
|
"--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(
|
parser.add_argument(
|
||||||
"urls",
|
"urls",
|
||||||
@@ -58,6 +58,9 @@ def main():
|
|||||||
parser = build_cmdline_parser()
|
parser = build_cmdline_parser()
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if args.cfgfiles:
|
||||||
|
config.load(*args.cfgfiles, strict=True)
|
||||||
|
|
||||||
if args.dest:
|
if args.dest:
|
||||||
config.set(("base-directory",), args.dest)
|
config.set(("base-directory",), args.dest)
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import platform
|
|||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
# public interface
|
# public interface
|
||||||
|
|
||||||
def load(*files):
|
def load(*files, strict=False):
|
||||||
"""Load JSON configuration files"""
|
"""Load JSON configuration files"""
|
||||||
configfiles = files or _default_configs
|
configfiles = files or _default_configs
|
||||||
for conf in configfiles:
|
for conf in configfiles:
|
||||||
@@ -26,6 +26,8 @@ def load(*files):
|
|||||||
confdict = json.load(file)
|
confdict = json.load(file)
|
||||||
_config.update(confdict)
|
_config.update(confdict)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
|
if strict:
|
||||||
|
raise
|
||||||
continue
|
continue
|
||||||
except json.decoder.JSONDecodeError as exception:
|
except json.decoder.JSONDecodeError as exception:
|
||||||
print("Error while loading '", path, "':", sep="", file=sys.stderr)
|
print("Error while loading '", path, "':", sep="", file=sys.stderr)
|
||||||
|
|||||||
Reference in New Issue
Block a user