diff options
author | emkael <emkael@tlen.pl> | 2018-02-23 16:34:18 +0100 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2018-02-23 16:34:18 +0100 |
commit | e8a06741465702163977c638c5d11ff4419e7c75 (patch) | |
tree | 7a9a6fe12970e26ec0a7c3131d1c1b7e52da3361 | |
parent | 4f83ab2780bbe79784ecfbe0530f7f4dda102f10 (diff) |
Converting command line argument parsing to argparse
-rw-r--r-- | jfr_playoff/settings.py | 6 | ||||
-rw-r--r-- | playoff.py | 23 |
2 files changed, 24 insertions, 5 deletions
diff --git a/jfr_playoff/settings.py b/jfr_playoff/settings.py index 9d727a7..021253f 100644 --- a/jfr_playoff/settings.py +++ b/jfr_playoff/settings.py @@ -11,12 +11,12 @@ def complete_filename(text, state): class PlayoffSettings(object): - def __init__(self): + def __init__(self, config_file): self.settings = None self.interactive = False self.settings_file = None - if len(sys.argv) > 1: - self.settings_file = sys.argv[1].decode( + if config_file is not None: + self.settings_file = config_file.decode( sys.getfilesystemencoding()) else: self.interactive = True @@ -7,8 +7,24 @@ from jfr_playoff.settings import PlayoffSettings def main(): + interactive = False + try: - settings = PlayoffSettings() + import argparse + arg_parser = argparse.ArgumentParser( + description='Generate play-off HTML for JFR Teamy tournaments') + output_args = arg_parser.add_mutually_exclusive_group() + output_args.add_argument('-v', '--verbose', action='store_true', + help='display debug info on STDERR') + output_args.add_argument('-q', '--quiet', action='store_true', + help='suppress warnings on STDERR') + arg_parser.add_argument('config_file', metavar='JSON_FILE', + help='path to config JSON file', + type=str, nargs='?', default=None) + arguments = arg_parser.parse_args() + + settings = PlayoffSettings(arguments.config_file) + interactive = settings.interactive generator = PlayoffGenerator(settings) content = generator.generate_content() @@ -17,10 +33,13 @@ def main(): file_manager.write_content(content) file_manager.copy_scripts() file_manager.send_files() + except SystemExit: + interactive = False + raise except: print traceback.format_exc() finally: - if settings.interactive: + if interactive: raw_input('Press any key to continue...') if __name__ == '__main__': |