X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=scripts%2Fml-import.py;h=07c7fbb47e36f69122f81746616380ac737f3f99;hb=35190cea6dda6d65537b110f82a5d3f5277bd94c;hp=73dc1a18056f90d324873bad07c399cb3b319143;hpb=0d4b773673c36d8835f2277dca403aa8d5079ff2;p=m_librarian.git diff --git a/scripts/ml-import.py b/scripts/ml-import.py index 73dc1a1..07c7fbb 100755 --- a/scripts/ml-import.py +++ b/scripts/ml-import.py @@ -1,15 +1,51 @@ #! /usr/bin/env python +from __future__ import print_function +import argparse import sys -from m_librarian.db import init_db, update_counters + +from m_librarian.config import get_config +from m_librarian.db import open_db, init_db, update_counters from m_librarian.glst import import_glst from m_librarian.inp import import_inpx +from m_librarian.pbar import ttyProgressBar +if ttyProgressBar: + from m_librarian.pbar import ml_ttyProgressBar if __name__ == '__main__': - if len(sys.argv) < 2: - sys.exit("Usage: %s file.inpx..." % sys.argv[0]) + parser = argparse.ArgumentParser(description='Import') + parser.add_argument('-C', '--config', help='configuration file') + parser.add_argument('-D', '--database', help='database URI') + parser.add_argument('-P', '--no-pbar', action='store_true', + help='inhibit progress bar') + parser.add_argument('inpx', nargs='+', help='INPX files to import') + args = parser.parse_args() + + if args.config: + get_config(args.config) # Get and cache config file + + open_db(args.database) init_db() import_glst() - for inpx in sys.argv[1:]: - import_inpx(inpx) - update_counters() + use_pbar = ttyProgressBar and not args.no_pbar and sys.stdout.isatty() + for inpx in args.inpx: + if use_pbar: + if len(inpx) > 25: + pbar_fname = inpx[:22] + '...' + else: + pbar_fname = inpx + print(pbar_fname.ljust(20), end=': ') + sys.stdout.flush() + pbar = ml_ttyProgressBar() + import_inpx(inpx, pbar_cb=pbar) + print("Ok") + else: + import_inpx(inpx) + if use_pbar: + print("Updating counters", end=': ') + sys.stdout.flush() + pbar = ml_ttyProgressBar() + update_counters(pbar_cb=pbar) + print("Ok") + else: + update_counters()