#!/usr/bin/env python import argparse import hashlib import os import re import string import sys 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) 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(args.strip))