mergedbs.py revision 7ec681f3
17ec681f3Smrg# 27ec681f3Smrg# Copyright 2017-2019 Advanced Micro Devices, Inc. 37ec681f3Smrg# 47ec681f3Smrg# Permission is hereby granted, free of charge, to any person obtaining a 57ec681f3Smrg# copy of this software and associated documentation files (the "Software"), 67ec681f3Smrg# to deal in the Software without restriction, including without limitation 77ec681f3Smrg# on the rights to use, copy, modify, merge, publish, distribute, sub 87ec681f3Smrg# license, and/or sell copies of the Software, and to permit persons to whom 97ec681f3Smrg# the Software is furnished to do so, subject to the following conditions: 107ec681f3Smrg# 117ec681f3Smrg# The above copyright notice and this permission notice (including the next 127ec681f3Smrg# paragraph) shall be included in all copies or substantial portions of the 137ec681f3Smrg# Software. 147ec681f3Smrg# 157ec681f3Smrg# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 167ec681f3Smrg# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 177ec681f3Smrg# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 187ec681f3Smrg# THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, 197ec681f3Smrg# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 207ec681f3Smrg# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 217ec681f3Smrg# USE OR OTHER DEALINGS IN THE SOFTWARE. 227ec681f3Smrg# 237ec681f3Smrg""" 247ec681f3SmrgHelper script to merge register database JSON files. 257ec681f3Smrg 267ec681f3Smrg usage: python3 mergedbs.py [FILES...] 277ec681f3Smrg 287ec681f3SmrgWill merge the given JSON files and output the result on stdout. 297ec681f3Smrg""" 307ec681f3Smrg 317ec681f3Smrgfrom collections import defaultdict 327ec681f3Smrgimport json 337ec681f3Smrgimport re 347ec681f3Smrgimport sys 357ec681f3Smrg 367ec681f3Smrgfrom regdb import RegisterDatabase, deduplicate_enums, deduplicate_register_types 377ec681f3Smrg 387ec681f3Smrgdef main(): 397ec681f3Smrg regdb = RegisterDatabase() 407ec681f3Smrg for filename in sys.argv[1:]: 417ec681f3Smrg with open(filename, 'r') as filp: 427ec681f3Smrg regdb.update(RegisterDatabase.from_json(json.load(filp))) 437ec681f3Smrg 447ec681f3Smrg deduplicate_enums(regdb) 457ec681f3Smrg deduplicate_register_types(regdb) 467ec681f3Smrg 477ec681f3Smrg print(regdb.encode_json_pretty()) 487ec681f3Smrg 497ec681f3Smrg 507ec681f3Smrgif __name__ == '__main__': 517ec681f3Smrg main() 527ec681f3Smrg 537ec681f3Smrg# kate: space-indent on; indent-width 4; replace-tabs on; 54