From 3f54574eb9ee660e4080aac64006db27e4e85ad2 Mon Sep 17 00:00:00 2001 From: Wendel Voigt Date: Mon, 6 Apr 2020 23:15:32 -0500 Subject: [PATCH] Add ability to use and save options in files (#314) --- requirements.in | 1 + requirements.txt | 1 + src/domdiv/main.py | 17 ++++++++++++++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/requirements.in b/requirements.in index c236f6d2..61fe752d 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 6dc2c529..27821d40 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 5bdac549..8c16d740 100644 --- a/src/domdiv/main.py +++ b/src/domdiv/main.py @@ -2,7 +2,7 @@ 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