summaryrefslogtreecommitdiffstats
path: root/src/civetweb/src/third_party/duktape-1.8.0/debugger/merge_debug_meta.py
blob: ba9b38e3df45304ef9988ca94d756591d5a9c1b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/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))