X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ffa11e9dc42740652da1d8382b89bc7eaaac5e2e..91aeea6d741f2bec6ecdc32d24537cf0f2a7328a:/sdk/python/bin/arv-normalize diff --git a/sdk/python/bin/arv-normalize b/sdk/python/bin/arv-normalize index b1a6ca7b42..eab21f1179 100755 --- a/sdk/python/bin/arv-normalize +++ b/sdk/python/bin/arv-normalize @@ -1,4 +1,7 @@ #!/usr/bin/env python +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 import argparse import hashlib @@ -6,19 +9,38 @@ import os import re import string import sys -import logging -logger = logging.getLogger(os.path.basename(sys.argv[0])) +import arvados +from arvados._version import __version__ parser = argparse.ArgumentParser( description='Read manifest on standard input and put normalized manifest on standard output.') -args = parser.parse_args() +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") +parser.add_argument('--version', action='version', + version="%s %s" % (sys.argv[0], __version__), + help='Print version and exit.') -import arvados +args = parser.parse_args() 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))