diff --git a/requirements.in b/requirements.in index c236f6d..61fe752 100644 --- a/requirements.in +++ b/requirements.in @@ -2,3 +2,4 @@ reportlab Pillow pre-commit pytest +configargparse diff --git a/requirements.txt b/requirements.txt index 6dc2c52..27821d4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,6 +8,7 @@ aspy.yaml==1.3.0 # via pre-commit atomicwrites==1.3.0 # via pytest attrs==19.3.0 # via pytest cfgv==2.0.1 # via pre-commit +configargparse==1.2 identify==1.4.7 # via pre-commit importlib-metadata==0.23 # via pluggy, pre-commit, pytest more-itertools==7.2.0 # via pytest, zipp diff --git a/src/domdiv/main.py b/src/domdiv/main.py index 5bdac54..8c16d74 100644 --- a/src/domdiv/main.py +++ b/src/domdiv/main.py @@ -2,7 +2,7 @@ import os import codecs import json import sys -import argparse +import configargparse import copy import fnmatch import pkg_resources @@ -131,8 +131,8 @@ def add_opt(options, option, value): def parse_opts(cmdline_args=None): - parser = argparse.ArgumentParser( - formatter_class=argparse.ArgumentDefaultsHelpFormatter, + parser = configargparse.ArgParser( + formatter_class=configargparse.ArgumentDefaultsHelpFormatter, description="Generate Dominion Dividers", epilog="Source can be found at 'https://github.com/sumpfork/dominiontabs'. " "An online version can be found at 'http://domtabs.sandflea.org/'. ", @@ -747,6 +747,17 @@ def parse_opts(cmdline_args=None): dest="write_json", help="Write json version of card definitions and extras.", ) + group_special.add_argument( + "-c", + is_config_file=True, + help="Use the specified configuration file to provide options. " + "Command line options override options from this file.", + ) + group_special.add_argument( + "-w", + is_write_out_config_file_arg=True, + help="Write out the given options to the specified configuration file.", + ) options = parser.parse_args(args=cmdline_args) # Need to do these while we have access to the parser