X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b8ee617ec8af73120b427f7591744d0f4883a63f..a3dfcea5c3767936aa7bff6e03268d4ecadd0489:/sdk/python/bin/arv-normalize diff --git a/sdk/python/bin/arv-normalize b/sdk/python/bin/arv-normalize index b1a6ca7b42..b059d79459 100755 --- a/sdk/python/bin/arv-normalize +++ b/sdk/python/bin/arv-normalize @@ -6,19 +6,32 @@ import os import re import string import sys -import logging - -logger = logging.getLogger(os.path.basename(sys.argv[0])) parser = argparse.ArgumentParser( description='Read manifest on standard input and put normalized manifest on standard output.') +parser.add_argument('--extract', type=str, help="The file to extract from the input manifest") +parser.add_argument('--strip', action='store_true', help="Strip authorization tokens") + args = parser.parse_args() import arvados r = sys.stdin.read() - + cr = arvados.CollectionReader(r) -print cr.manifest_text() +if args.extract: + i = args.extract.rfind('/') + if i == -1: + stream = '.' + fn = args.extract + else: + stream = args.extract[:i] + fn = args.extract[(i+1):] + for s in cr.all_streams(): + if s.name() == stream: + if fn in s.files(): + sys.stdout.write(s.files()[fn].as_manifest()) +else: + sys.stdout.write(cr.manifest_text(strip=args.strip, normalize=True))