#!/usr/bin/env python3 # Copyright (C) The Arvados Authors. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 import argparse import hashlib import os import re import string import sys import arvados from arvados._version import __version__ 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") parser.add_argument('--version', action='version', version="%s %s" % (sys.argv[0], __version__), help='Print version and exit.') args = parser.parse_args() r = sys.stdin.read() cr = arvados.CollectionReader(r) 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))