diff options
Diffstat (limited to 'src/civetweb/src/third_party/duktape-1.5.2/debugger/merge_debug_meta.py')
-rw-r--r-- | src/civetweb/src/third_party/duktape-1.5.2/debugger/merge_debug_meta.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/civetweb/src/third_party/duktape-1.5.2/debugger/merge_debug_meta.py b/src/civetweb/src/third_party/duktape-1.5.2/debugger/merge_debug_meta.py new file mode 100644 index 000000000..ba9b38e3d --- /dev/null +++ b/src/civetweb/src/third_party/duktape-1.5.2/debugger/merge_debug_meta.py @@ -0,0 +1,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)) |