]> git.phdru.name Git - m_librarian.git/blob - scripts/ml-import.py
Feat(ml-import): Display tty progress bar during import
[m_librarian.git] / scripts / ml-import.py
1 #! /usr/bin/env python
2 from __future__ import print_function
3
4 import argparse
5 import sys
6
7 from m_librarian.config import get_config
8 from m_librarian.db import open_db, init_db, update_counters
9 from m_librarian.glst import import_glst
10 from m_librarian.inp import import_inpx
11 from m_librarian.pbar import ttyProgressBar
12 if ttyProgressBar:
13     from m_librarian.pbar import ml_ttyProgressBar
14
15 if __name__ == '__main__':
16     parser = argparse.ArgumentParser(description='Import')
17     parser.add_argument('-C', '--config', help='configuration file')
18     parser.add_argument('-D', '--database', help='database URI')
19     parser.add_argument('-P', '--no-pbar', action='store_true',
20                         help='inhibit progress bar')
21     parser.add_argument('inpx', nargs='+', help='INPX files to import')
22     args = parser.parse_args()
23
24     if args.config:
25         get_config(args.config)  # Get and cache config file
26
27     open_db(args.database)
28     init_db()
29     import_glst()
30     for inpx in args.inpx:
31         if ttyProgressBar and not args.no_pbar:
32             if len(inpx) > 25:
33                 pbar_fname = inpx[:22] + '...'
34             else:
35                 pbar_fname = inpx
36             print(pbar_fname.ljust(20), end=': ')
37             sys.stdout.flush()
38             pbar = ml_ttyProgressBar()
39             import_inpx(inpx, pbar_cb=pbar)
40         else:
41             import_inpx(inpx)
42     update_counters()