diff env/bin/lss3 @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/bin/lss3	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-#!/Users/pldms/Development/Projects/2020/david-matthews-galaxy/guppy_basecaller/env/bin/python3
-import boto
-from boto.exception import S3ResponseError
-from boto.s3.connection import OrdinaryCallingFormat
-
-
-def sizeof_fmt(num):
-    for x in ['b ', 'KB', 'MB', 'GB', 'TB', 'XB']:
-        if num < 1024.0:
-            return "%3.1f %s" % (num, x)
-        num /= 1024.0
-    return "%3.1f %s" % (num, x)
-
-
-def list_bucket(b, prefix=None, marker=None):
-    """List everything in a bucket"""
-    from boto.s3.prefix import Prefix
-    from boto.s3.key import Key
-    total = 0
-
-    if prefix:
-        if not prefix.endswith("/"):
-            prefix = prefix + "/"
-        query = b.list(prefix=prefix, delimiter="/", marker=marker)
-        print("%s" % prefix)
-    else:
-        query = b.list(delimiter="/", marker=marker)
-
-    num = 0
-    for k in query:
-        num += 1
-        mode = "-rwx---"
-        if isinstance(k, Prefix):
-            mode = "drwxr--"
-            size = 0
-        else:
-            size = k.size
-            for g in k.get_acl().acl.grants:
-                if g.id == None:
-                    if g.permission == "READ":
-                        mode = "-rwxr--"
-                    elif g.permission == "FULL_CONTROL":
-                        mode = "-rwxrwx"
-        if isinstance(k, Key):
-            print("%s\t%s\t%010s\t%s" % (mode, k.last_modified,
-                                         sizeof_fmt(size), k.name))
-        else:
-           #If it's not a Key object, it doesn't have a last_modified time, so
-           #print nothing instead
-            print("%s\t%s\t%010s\t%s" % (mode, ' ' * 24,
-                                         sizeof_fmt(size), k.name))
-        total += size
-    print ("=" * 80)
-    print ("\t\tTOTAL:  \t%010s \t%i Files" % (sizeof_fmt(total), num))
-
-
-def list_buckets(s3, display_tags=False):
-    """List all the buckets"""
-    for b in s3.get_all_buckets():
-        print(b.name)
-        if display_tags:
-            try:
-                tags = b.get_tags()
-                for tag in tags[0]:
-                    print("   %s:%s" % (tag.key, tag.value))
-            except S3ResponseError as e:
-                if e.status != 404:
-                    raise
-
-
-def main():
-    import optparse
-    import sys
-
-    usage = "usage: %prog [options] [BUCKET1] [BUCKET2]"
-    description = "List all S3 buckets OR list keys in the named buckets"
-    parser = optparse.OptionParser(description=description, usage=usage)
-    parser.add_option('-m', '--marker',
-                      help='The S3 key where the listing starts after it.')
-    parser.add_option('-t', '--tags', action='store_true',
-                      help='Display tags when listing all buckets.')
-    options, buckets = parser.parse_args()
-    marker = options.marker
-
-    if not buckets:
-        list_buckets(boto.connect_s3(), options.tags)
-        sys.exit(0)
-
-    if options.tags:
-        print("-t option only works for the overall bucket list")
-        sys.exit(1)
-
-    pairs = []
-    mixedCase = False
-    for name in buckets:
-        if "/" in name:
-            pairs.append(name.split("/", 1))
-        else:
-            pairs.append([name, None])
-        if pairs[-1][0].lower() != pairs[-1][0]:
-            mixedCase = True
-
-    if mixedCase:
-        s3 = boto.connect_s3(calling_format=OrdinaryCallingFormat())
-    else:
-        s3 = boto.connect_s3()
-
-    for name, prefix in pairs:
-        list_bucket(s3.get_bucket(name), prefix, marker=marker)
-
-
-if __name__ == "__main__":
-    main()