#! /usr/bin/env python3

import argparse

from nexrad.db    import Database
from nexrad.storm import StormEvent

parser = argparse.ArgumentParser(
    description = 'Ingest events from StormEvent_details_*.csv.gz files'
)

parser.add_argument('--quiet',   action='store_true', help='Suppress output')
parser.add_argument('--dry-run', action='store_true', help='Do not actually ingest events')
parser.add_argument('db',                             help='SQLite3 NEXRAD radar site database')
parser.add_argument('csv-event-details', nargs='+',   help='Compressed storm event details CSV file')

args = parser.parse_args()

db = Database.connect(args.db)

if not args.dry_run:
    db.execute('begin transaction')

for path in getattr(args, 'csv-event-details'):
    for event in StormEvent.each_from_csv_file(path):
        if not args.dry_run:
            db.add(event)

    if not args.quiet:
        print(f"Finished ingesting file {path}")

if not args.dry_run:
    db.commit()