X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=scripts%2Fml-import.py;h=56ff8a670df980b3ad09b6c0dd72646c8bfcf91d;hb=935a32f3ad46cc24169afc635ffcd30ad00d5a98;hp=0273ff67972e122b492947d5798b79ec837b0feb;hpb=e53f480b62166cc8028f1d6e4fda307ad7af2233;p=m_librarian.git diff --git a/scripts/ml-import.py b/scripts/ml-import.py index 0273ff6..56ff8a6 100755 --- a/scripts/ml-import.py +++ b/scripts/ml-import.py @@ -1,14 +1,42 @@ #! /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.glst import import_data + +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_data() - import_inpx(sys.argv[1]) + import_glst() + for inpx in args.inpx: + if ttyProgressBar and not args.no_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) + else: + import_inpx(inpx) update_counters()