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