-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgtfs_db_importer_cli.py
47 lines (35 loc) · 1.53 KB
/
gtfs_db_importer_cli.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import argparse, os, sys
from pathlib import Path
from inc.shared.inc.helpers.config_helpers import load_convenience_config
from inc.db_importer import GTFS_DB_Importer
from inc.shared.inc.helpers.gtfs_helpers import compute_gtfs_day_from_resource_path, compute_gtfs_db_filename
def main():
script_path = Path(os.path.realpath(__file__))
app_config = load_convenience_config(script_path)
parser = argparse.ArgumentParser()
parser.add_argument('--gtfs-folder-path', '--gtfs-folder-path')
parser.add_argument('--output-db-path', '--output-db-path')
args = parser.parse_args()
input_path = args.gtfs_folder_path
if input_path is None:
print("ERROR, use with --gtfs-folder-path")
sys.exit(1)
gtfs_folder_path = Path(os.path.abspath(input_path))
db_path = None
if args.output_db_path:
db_path = Path(args.output_db_path)
else:
formatted_date = compute_gtfs_day_from_resource_path(gtfs_folder_path)
if formatted_date is None:
print(f"CANT read date from GTFS path: '{gtfs_folder_path}'")
print(f"Use --output-db-path to override")
sys.exit(1)
db_filename = compute_gtfs_db_filename(formatted_date)
db_base_path = app_config['gtfs_dbs_base_path']
db_path = f'{db_base_path}/{db_filename}'
db_path = Path(db_path)
os.makedirs(db_path.parent, exist_ok=True)
gtfs_importer = GTFS_DB_Importer(app_config, gtfs_folder_path, db_path)
gtfs_importer.start()
if __name__ == "__main__":
main()