X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=scripts%2Fml-import.py;h=07c7fbb47e36f69122f81746616380ac737f3f99;hb=d3596dc69222f57821642d5f26111d2cba97732f;hp=f154841f1742cee8719811dedbfc02779805c630;hpb=486c6f02b0a7dfb9debe00780257d191eb21c395;p=m_librarian.git diff --git a/scripts/ml-import.py b/scripts/ml-import.py index f154841..07c7fbb 100755 --- a/scripts/ml-import.py +++ b/scripts/ml-import.py @@ -1,19 +1,51 @@ #! /usr/bin/env python +from __future__ import print_function import argparse +import sys + +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__': 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() + use_pbar = ttyProgressBar and not args.no_pbar and sys.stdout.isatty() for inpx in args.inpx: - import_inpx(inpx) - update_counters() + 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()