Merge pull request 'Automatically get the latest json file if only given a folder as path' (#33) from automatically-get-latest-file into master

Reviewed-on: https://gitea.n39.eu/Netz39_Vorstand/stammdaten-formular/pulls/33
This commit is contained in:
MG-95 2022-10-24 22:14:47 +00:00
commit 1a0d3b3733
2 changed files with 28 additions and 4 deletions

View file

@ -8,7 +8,15 @@ python3 edit_data_form.py
## Daten eines bestehenden Mitglieds ändern ## Daten eines bestehenden Mitglieds ändern
Eine Nennung des Ordners des Members genügt.
Dann wird stets die aktuelle json-Datei verwendet.
```bash ```bash
MEMBER_FILE=<path/to/member/json> python3 edit_data_form.py <path/to/member/>
python3 edit_data_form.py $MEMBER_FILE ```
Alternativ kann die json-Datei explizit genannt werden:
```bash
python3 edit_data_form.py <path/to/member/member.json>
``` ```

View file

@ -1,6 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# encoding: utf-8 # encoding: utf-8
import os
import npyscreen import npyscreen
import json import json
import datetime import datetime
@ -65,9 +66,24 @@ class FormApp(npyscreen.NPSAppManaged):
def main(*_args): def main(*_args):
if len(sys.argv) > 1: if len(sys.argv) > 1:
file_path = pathlib.Path(sys.argv[1]) file_path = pathlib.Path(sys.argv[1])
if not file_path.exists():
print("Trying to open nonexistent file. Aborting.") if(sys.argv[1].endswith(".json")):
# json file as argument
if not file_path.exists():
print("Trying to open nonexistent file. Aborting.")
sys.exit(0)
elif file_path.is_dir():
# we want the latest json file in given folder
filesList = [f for f in os.listdir(file_path) if os.path.isfile(os.path.join(file_path, f)) and f.endswith(".json")]
filesList.sort()
file_path = os.path.join(file_path, filesList[-1])
else:
print("Please enter a valid json file or the directory containing the json file!")
sys.exit(0) sys.exit(0)
else: else:
file_path = pathlib.Path(pathlib.Path(__file__).absolute().parent, 'example.json') file_path = pathlib.Path(pathlib.Path(__file__).absolute().parent, 'example.json')