#!/usr/bin/env python3 # # Copyright 2013 The Flutter Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """ Parses manifest file and dumps it to json. """ import argparse import json import os import sys import hashlib def main(): parser = argparse.ArgumentParser() parser.add_argument('--input', dest='file_path', action='store', required=True) parser.add_argument('--clang-cpu', dest='clang_cpu', action='store', required=True) args = parser.parse_args() with open(args.file_path) as f: data = json.load(f) output = {} target = args.clang_cpu + '-fuchsia' for d in data: if target in d['target']: for runtime in d['runtime']: # key contains the soname and the cflags used to compile it. # this allows us to distinguish between different sanitizers # and experiments key = runtime['soname'] + ''.join(d['cflags']) md5 = hashlib.md5(key.encode()).hexdigest() hash_key = 'md5_%s' % md5 # Uncomment this line to get the hash keys # print runtime['dist'], d['cflags'], hash_key output[hash_key] = os.path.dirname(runtime['dist']) print(json.dumps(output)) return 0 if __name__ == '__main__': sys.exit(main())