diff --git a/edit_data_form.py b/edit_data_form.py index 276ccc1..0e43d3e 100755 --- a/edit_data_form.py +++ b/edit_data_form.py @@ -4,7 +4,7 @@ import npyscreen import json import datetime -from sys import argv +import sys import pathlib from base_data_model import base_data_model @@ -15,7 +15,7 @@ from membership_data_model import membership_data_model class FormApp(npyscreen.NPSAppManaged): def __init__(self, filename): super().__init__() - + self.is_new_member = self.is_default_file(filename) self.dir_path = pathlib.Path(filename).absolute().parent self.member = json.load(open(filename, 'r')) @@ -47,23 +47,32 @@ class FormApp(npyscreen.NPSAppManaged): name = self.base_data.get_form_values_dict()['fullname'] date = datetime.datetime.now().replace(microsecond=0).isoformat() fn = '{}_{}.json'.format('_'.join(name.lower().split()), date.replace(':','')) + if self.is_new_member: + print('Enter destination directory for new Member data:') + self.dir_path = input() file_path = pathlib.Path(self.dir_path, fn) return file_path + def is_default_file(self, filename): + return pathlib.Path(filename).name == 'example.json' + def main(*_args): - if len(argv) > 1: - filename = argv[1] + if len(sys.argv) > 1: + file_path = pathlib.Path(sys.argv[1]) + if not file_path.exists(): + print("Trying to open nonexistent file. Aborting.") + sys.exit(0) else: - filename = pathlib.Path(pathlib.Path(__file__).absolute().parent, 'example.json') + file_path = pathlib.Path(pathlib.Path(__file__).absolute().parent, 'example.json') - app = FormApp(filename) + app = FormApp(file_path) try: app.run() except Exception as e: print(e) - return 0 + sys.exit(0) if app.data_has_changed(): out_data = app.get_data_from_form()