1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env python 2*6777b538SAndroid Build Coastguard Worker# Copyright 2017 The Chromium Authors 3*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 5*6777b538SAndroid Build Coastguard Worker 6*6777b538SAndroid Build Coastguard Workerfrom __future__ import print_function 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Workerimport argparse 9*6777b538SAndroid Build Coastguard Workerimport json 10*6777b538SAndroid Build Coastguard Workerimport shutil 11*6777b538SAndroid Build Coastguard Workerimport sys 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Workerimport merge_api 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Workerdef noop_merge(output_json, jsons_to_merge): 17*6777b538SAndroid Build Coastguard Worker """Use the first supplied JSON as the output JSON. 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker Primarily intended for unsharded tasks. 20*6777b538SAndroid Build Coastguard Worker 21*6777b538SAndroid Build Coastguard Worker Args: 22*6777b538SAndroid Build Coastguard Worker output_json: A path to a JSON file to which the results should be written. 23*6777b538SAndroid Build Coastguard Worker jsons_to_merge: A list of paths to JSON files. 24*6777b538SAndroid Build Coastguard Worker """ 25*6777b538SAndroid Build Coastguard Worker if len(jsons_to_merge) > 1: 26*6777b538SAndroid Build Coastguard Worker print('Multiple JSONs provided: %s' % (','.join(jsons_to_merge)), 27*6777b538SAndroid Build Coastguard Worker file=sys.stderr) 28*6777b538SAndroid Build Coastguard Worker return 1 29*6777b538SAndroid Build Coastguard Worker if jsons_to_merge: 30*6777b538SAndroid Build Coastguard Worker shutil.copyfile(jsons_to_merge[0], output_json) 31*6777b538SAndroid Build Coastguard Worker else: 32*6777b538SAndroid Build Coastguard Worker with open(output_json, 'w') as f: 33*6777b538SAndroid Build Coastguard Worker json.dump({}, f) 34*6777b538SAndroid Build Coastguard Worker return 0 35*6777b538SAndroid Build Coastguard Worker 36*6777b538SAndroid Build Coastguard Worker 37*6777b538SAndroid Build Coastguard Workerdef main(raw_args): 38*6777b538SAndroid Build Coastguard Worker parser = merge_api.ArgumentParser() 39*6777b538SAndroid Build Coastguard Worker args = parser.parse_args(raw_args) 40*6777b538SAndroid Build Coastguard Worker 41*6777b538SAndroid Build Coastguard Worker return noop_merge(args.output_json, args.jsons_to_merge) 42*6777b538SAndroid Build Coastguard Worker 43*6777b538SAndroid Build Coastguard Worker 44*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__': 45*6777b538SAndroid Build Coastguard Worker sys.exit(main(sys.argv[1:])) 46