X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/da939284a2a57dd046422b75a0c4700a5ff4f223..db868a3c02cb84f068de77b438b4f2cb498826ae:/sdk/python/bin/arv-normalize diff --git a/sdk/python/bin/arv-normalize b/sdk/python/bin/arv-normalize index 0a0adbe6af..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='Normalize contents of a manifest') + 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))