]> git.phdru.name Git - m_librarian.git/blobdiff - scripts/ml-import.py
Feat(ml-import): Display tty progress bar during import
[m_librarian.git] / scripts / ml-import.py
index 3ccbd319a87cf1101e95431ab3836393b974d5bd..56ff8a670df980b3ad09b6c0dd72646c8bfcf91d 100755 (executable)
@@ -1,15 +1,23 @@
 #! /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()
 
@@ -20,5 +28,15 @@ if __name__ == '__main__':
     init_db()
     import_glst()
     for inpx in args.inpx:
-        import_inpx(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()