diff options
Diffstat (limited to 'gen-headers.py')
-rwxr-xr-x | gen-headers.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/gen-headers.py b/gen-headers.py new file mode 100755 index 00000000000..ef9fa77117c --- /dev/null +++ b/gen-headers.py @@ -0,0 +1,54 @@ +#!/usr/bin/python + +import sys +try: + import json +except ImportError: + import simplejson as json +from string import Template + + +def getLogBook(logFile='error-codes.json'): + fp = open(logFile) + return json.load(fp) + + +def genCHeader(logBook, + infile='gf-error-codes.h.template', + outfile='gf-error-codes.h'): + fp = open('gf-error-codes.h.template') + s = fp.read() + fp.close() + template = Template(s) + + defineLines = [] + caseLines = [] + for name, value in logBook.iteritems(): + nameDef = "GF_%s" % (name.upper(),) + code = value['code'] + msgNameDef = "%s_MSG" % (nameDef,) + msg = value['message']['en'] + + defineLines.append("#define %-20s %d" % (nameDef, code)) + defineLines.append("#define %-20s %s" % (msgNameDef, + json.dumps(msg))) + caseLines.append(" case %s: return _(%s);" % \ + (nameDef, msgNameDef)) + + d = {'DEFINES': "\n".join(defineLines), + 'CASES': "\n".join(caseLines)} + #print template.substitute(d) + + fp = open(outfile, 'w') + fp.write(template.substitute(d)) + fp.close() + + +if __name__ == "__main__": + try: + logBook = getLogBook() + genCHeader(logBook) + sys.exit(0) + except IOError, e: + print str(e) + sys.exit(-1) |