Merge branch 'master' into 3609-arv-run
[arvados.git] / sdk / python / bin / arv-ls
index c96f4cfa552f4ac039787f9152d596908a3f58ac..382bfe8cd116e92f200b7c675bbde25fa2396db2 100755 (executable)
@@ -1,28 +1,24 @@
 #!/usr/bin/env python
 
 import argparse
-import hashlib
-import os
-import re
-import string
-import sys
-import logging
 
-logger = logging.getLogger(os.path.basename(sys.argv[0]))
+import arvados
+import arvados.commands._util as arv_cmd
 
 parser = argparse.ArgumentParser(
-    description='List contents of a manifest')
+    description='List contents of a manifest',
+    parents=[arv_cmd.retry_opt])
 
 parser.add_argument('locator', type=str,
-                    help="""
-Collection locator, optionally with a file path or prefix.
-""")
+                    help="Collection UUID or locator")
+parser.add_argument('-s', action='store_true', help="""List file sizes, in KiB.""")
 
 args = parser.parse_args()
-
-import arvados
-
-cr = arvados.CollectionReader(arvados.Keep.get(args.locator))
+cr = arvados.CollectionReader(args.locator, num_retries=args.retries)
 
 for f in cr.all_files():
-    print(f.stream_name() + "/" + f.name())
+    if args.s:
+        print "{:>10} {}".format((f.size() + 1023) / 1024,
+                                 f.stream_name() + "/" + f.name())
+    else:
+        print f.stream_name() + "/" + f.name()