1*61046927SAndroid Build Coastguard Worker# 2*61046927SAndroid Build Coastguard Worker# Copyright 2017-2019 Advanced Micro Devices, Inc. 3*61046927SAndroid Build Coastguard Worker# 4*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT 5*61046927SAndroid Build Coastguard Worker# 6*61046927SAndroid Build Coastguard Worker""" 7*61046927SAndroid Build Coastguard WorkerHelper script to merge register database JSON files. 8*61046927SAndroid Build Coastguard Worker 9*61046927SAndroid Build Coastguard Worker usage: python3 mergedbs.py [FILES...] 10*61046927SAndroid Build Coastguard Worker 11*61046927SAndroid Build Coastguard WorkerWill merge the given JSON files and output the result on stdout. 12*61046927SAndroid Build Coastguard Worker""" 13*61046927SAndroid Build Coastguard Worker 14*61046927SAndroid Build Coastguard Workerfrom collections import defaultdict 15*61046927SAndroid Build Coastguard Workerimport json 16*61046927SAndroid Build Coastguard Workerimport re 17*61046927SAndroid Build Coastguard Workerimport sys 18*61046927SAndroid Build Coastguard Worker 19*61046927SAndroid Build Coastguard Workerfrom regdb import RegisterDatabase, deduplicate_enums, deduplicate_register_types 20*61046927SAndroid Build Coastguard Worker 21*61046927SAndroid Build Coastguard Workerdef main(): 22*61046927SAndroid Build Coastguard Worker regdb = RegisterDatabase() 23*61046927SAndroid Build Coastguard Worker for filename in sys.argv[1:]: 24*61046927SAndroid Build Coastguard Worker with open(filename, 'r') as filp: 25*61046927SAndroid Build Coastguard Worker regdb.update(RegisterDatabase.from_json(json.load(filp))) 26*61046927SAndroid Build Coastguard Worker 27*61046927SAndroid Build Coastguard Worker deduplicate_enums(regdb) 28*61046927SAndroid Build Coastguard Worker deduplicate_register_types(regdb) 29*61046927SAndroid Build Coastguard Worker 30*61046927SAndroid Build Coastguard Worker print(regdb.encode_json_pretty()) 31*61046927SAndroid Build Coastguard Worker 32*61046927SAndroid Build Coastguard Worker 33*61046927SAndroid Build Coastguard Workerif __name__ == '__main__': 34*61046927SAndroid Build Coastguard Worker main() 35*61046927SAndroid Build Coastguard Worker 36*61046927SAndroid Build Coastguard Worker# kate: space-indent on; indent-width 4; replace-tabs on; 37