diff options
Diffstat (limited to 'scripts/config2help.py')
-rwxr-xr-x | scripts/config2help.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/scripts/config2help.py b/scripts/config2help.py new file mode 100755 index 00000000..2573d08a --- /dev/null +++ b/scripts/config2help.py @@ -0,0 +1,54 @@ +#!/usr/bin/python + +import os,sys + +def zapquotes(str): + if str[0]=='"': str = str[1:str.rfind('"')] + return str + +def escapequotes(str): + return str.strip().replace("\\","\\\\").replace('"','\\"') + +helplen = morelines = 0 +out = sys.stdout + +def readfile(filename): + global helplen, morelines + #sys.stderr.write("Reading %s\n" % filename) + try: + lines = open(filename).read().split("\n") + except IOError: + sys.stderr.write("File %s missing\n" % filename) + return + config = None + description = None + for i in lines: + if helplen: + i = i.expandtabs() + if not len(i) or i[:helplen].isspace(): + if morelines: out.write('\\n') + morelines = 1 + out.write(escapequotes(i)) + continue + else: + helplen = morelines = 0 + out.write('"\n') + + words = i.strip().split(None,1) + if not len(words): continue + + if words[0] in ("config", "menuconfig"): + config = words[1] + description = "" + elif words[0] in ("bool", "boolean", "tristate", "string", "hex", "int"): + if len(words)>1: description = zapquotes(words[1]) + elif words[0]=="prompt": + description = htmlescape(zapquotes(words[1])) + elif words[0] in ("help", "---help---"): + out.write('#define help_%s "' % config.lower()) + helplen = len(i[:i.find(words[0])].expandtabs()) + elif words[0] == "source": readfile(zapquotes(words[1])) + elif words[0] in ("default","depends", "select", "if", "endif", "#", "comment", "menu", "endmenu"): pass + +readfile(sys.argv[1]) +if helplen: out.write('"\n') |