You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

32 lines
1.1 KiB

#!/usr/bin/env python2
#
# Merge debugger YAML metadata files and output a merged JSON metadata file.
#
import os, sys, json, yaml
import optparse
if __name__ == '__main__':
parser = optparse.OptionParser()
parser.add_option('--output', dest='output', default=None, help='output JSON filename')
parser.add_option('--class-names', dest='class_names', help='YAML metadata for class names')
parser.add_option('--debug-commands', dest='debug_commands', help='YAML metadata for debug commands')
parser.add_option('--debug-errors', dest='debug_errors', help='YAML metadata for debug protocol error codes')
parser.add_option('--opcodes', dest='opcodes', help='YAML metadata for opcodes')
(opts, args) = parser.parse_args()
res = {}
def merge(fn):
with open(fn, 'rb') as f:
doc = yaml.load(f)
for k in doc.keys():
res[k] = doc[k]
merge(opts.class_names)
merge(opts.debug_commands)
merge(opts.debug_errors)
merge(opts.opcodes)
with open(opts.output, 'wb') as f:
f.write(json.dumps(res, indent=4) + '\n')
print('Wrote merged debugger metadata to ' + str(opts.output))