#!/bin/python3
import argparse
import glob
import os


main_descr = "Import data into the fishbook database!"


def run(args):
    datasets = sorted(glob.glob(os.path.join(args.folder, args.pattern)))
    if len(datasets) < 1 and not args.drop:
        print("no matching datasets found when using pattern %s" % os.path.join(args.folder, args.pattern))
        exit()
    
    import fishbook as fb
    if args.drop:
        fb.backend.database.drop_tables()
        exit()
    
    fb.backend.database.populate(datasets, args.update)

    
def main():
    parser = argparse.ArgumentParser(prog="fishbookImport", description=main_descr)
    parser.add_argument("folder", default=".", help="the location in which to look for datasets. Default is the current folder")
    parser.add_argument("-p", "--pattern", type=str, default="20*", help="the dataset name pattern to apply, e.g. \"2020-01-01-*\"")
    parser.add_argument("-u", "--update", default=False, action="store_true", help="update entries instead of skipping duplicates")
    parser.add_argument("--drop", default=False, action="store_true", help="Drop all information from the database")
    args = parser.parse_args()
    run(args)
  

if __name__ == "__main__":
    # import cProfile
    # cProfile.run("main()", 'importprof')
    main()
    
    # import pstats
    # p = pstats.Stats('importprof')
    # from IPython import embed
    # embed()