From 446f77daad4184c745575f57615960fd33641b40 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 7 Jun 2018 13:54:57 +0200 Subject: util/optionlist: move kconfig2wiki to kconfig2html and adapt to html This also removes a "chapters mode" that we never used. Change-Id: Ib301e2f4db0b9678081fa987a5dcc7108bb103a4 Signed-off-by: Patrick Georgi Reviewed-on: https://review.coreboot.org/26944 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- util/optionlist/kconfig2html | 118 ++++++++++++++++++++++++++++++++++++++ util/optionlist/kconfig2wiki | 132 ------------------------------------------- 2 files changed, 118 insertions(+), 132 deletions(-) create mode 100755 util/optionlist/kconfig2html delete mode 100755 util/optionlist/kconfig2wiki diff --git a/util/optionlist/kconfig2html b/util/optionlist/kconfig2html new file mode 100755 index 0000000000..defd35df82 --- /dev/null +++ b/util/optionlist/kconfig2html @@ -0,0 +1,118 @@ +#!/usr/bin/env python +# +# kconfig2wiki - Kconfig to MediaWiki converter for +# https://www.coreboot.org/coreboot_Options +# +# Copyright (C) 2010 coresystems GmbH +# based on http://landley.net/kdocs/make/menuconfig2html.py +# Copyright (C) by Rob Landley +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# + +import glob + +helplen = 0 +extra_chapters = 0 + +## +## Remove quotes from Kconfig string options +## +def zapquotes(str): + if str[0]=='"': str = str[1:str.rfind('"')] + return str + +## +## Escape HTML special characters +## +def htmlescape(str): + return str.strip().replace("&","&").replace("<","<").replace(">",">") + +## +## Process Kconfig file +## +def readfile(filename): + import sys + global helplen + + source=filename.replace("src/","").replace("/Kconfig","").replace("Kconfig","toplevel") + + try: + lines = open(filename).read().split("\n") + except IOError: + sys.stderr.write("File %s missing\n" % filename) + return + config = None + description = None + configtype = None + for i in lines: + if helplen: + i = i.expandtabs() + if not len(i) or i[:helplen].isspace(): + sys.stdout.write("%s
\n" % htmlescape(i)) + continue + else: + helplen = 0 + sys.stdout.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"): + configtype = htmlescape(zapquotes(words[0])) + if len(words)>1: description = htmlescape(zapquotes(words[1])) + elif words[0]=="prompt": + description = htmlescape(zapquotes(words[1])) + elif words[0] in ("help", "---help---"): + sys.stdout.write("\n") + sys.stdout.write("%s%s%s%s\n" % (config,source,configtype,description) ) + helplen = len(i[:i.find(words[0])].expandtabs()) + elif words[0] == "comment": + sys.stdout.write("\n") + sys.stdout.write("(comment)%s\n" % htmlescape(zapquotes(words[1]))) + elif words[0]=="menu": + if len(words)>1: + temp = htmlescape(zapquotes(words[1])) + sys.stdout.write("\n") + sys.stdout.write("Menu: %s\n" % temp) + elif words[0] == "endmenu": + sys.stdout.write("\n") + elif words[0] == "source": + fn=zapquotes(words[1]) + for name in glob.glob(fn): + readfile(name) + elif words[0] in ("default","depends", "select", "if", "endif", "#"): pass + #else: sys.stderr.write("unknown: %s\n" % i) + if helplen: sys.stdout.write("\n") + +def main(): + import sys, time + + if len(sys.argv)!=3: + sys.stderr.write("Usage: kconfig2wiki kconfigfile version\n") + sys.exit(1) + + sys.stdout.write("This is an automatically generated list of '''coreboot compile-time options'''.\n") + sys.stdout.write("\nLast update: %s\n" % sys.argv[2]) + sys.stdout.write("\n"); + sys.stdout.write("\n") + sys.stdout.write("\n") + sys.stdout.write("\n") + sys.stdout.write("\n") + sys.stdout.write("\n") + sys.stdout.write("\n") + readfile(sys.argv[1]) + sys.stdout.write("
OptionSourceFormatShort DescriptionDescription
\n") + +if __name__ == "__main__": + main() diff --git a/util/optionlist/kconfig2wiki b/util/optionlist/kconfig2wiki deleted file mode 100755 index 9e8fc270de..0000000000 --- a/util/optionlist/kconfig2wiki +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/env python -# -# kconfig2wiki - Kconfig to MediaWiki converter for -# https://www.coreboot.org/coreboot_Options -# -# Copyright (C) 2010 coresystems GmbH -# based on http://landley.net/kdocs/make/menuconfig2html.py -# Copyright (C) by Rob Landley -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# - -import glob - -helplen = 0 -extra_chapters = 0 - -## -## Remove quotes from Kconfig string options -## -def zapquotes(str): - if str[0]=='"': str = str[1:str.rfind('"')] - return str - -## -## Escape HTML special characters -## -def htmlescape(str): - return str.strip().replace("&","&").replace("<","<").replace(">",">") - -## -## Process Kconfig file -## -def readfile(filename): - import sys - global helplen - - source=filename.replace("src/","").replace("/Kconfig","").replace("Kconfig","toplevel") - - try: - lines = open(filename).read().split("\n") - except IOError: - sys.stderr.write("File %s missing\n" % filename) - return - config = None - description = None - configtype = None - for i in lines: - if helplen: - i = i.expandtabs() - if not len(i) or i[:helplen].isspace(): - sys.stdout.write("%s\n" % htmlescape(i)) - continue - else: - helplen = 0 - sys.stdout.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"): - configtype = htmlescape(zapquotes(words[0])) - if len(words)>1: description = htmlescape(zapquotes(words[1])) - elif words[0]=="prompt": - description = htmlescape(zapquotes(words[1])) - elif words[0] in ("help", "---help---"): - sys.stdout.write("|- bgcolor=\"#eeeeee\"\n") - sys.stdout.write("| %s || %s || %s || %s || \n" % (config,source,configtype,description) ) - helplen = len(i[:i.find(words[0])].expandtabs()) - elif words[0] == "comment": - sys.stdout.write("|- bgcolor=\"#eeeeee\"\n") - sys.stdout.write("| || || (comment) || || %s ||\n" % htmlescape(zapquotes(words[1]))) - elif words[0]=="menu": - if len(words)>1: - temp = htmlescape(zapquotes(words[1])) - if extra_chapters: - sys.stdout.write("== Menu: %s ==\n" % temp) - sys.stdout.write("{| border=\"0\" style=\"font-size: smaller\"\n"); - sys.stdout.write("|- bgcolor=\"#6699dd\"\n") - sys.stdout.write("! align=\"left\" | Option\n") - sys.stdout.write("! align=\"left\" | Source\n") - sys.stdout.write("! align=\"left\" | Format\n") - sys.stdout.write("! align=\"left\" | Short Description\n") - sys.stdout.write("! align=\"left\" | Description\n") - else: - # Don't start an extra chapter for a - # new menu - sys.stdout.write("|- bgcolor=\"#6699dd\"\n") - sys.stdout.write("! align=\"left\" | Menu: %s || || || ||\n" % temp) - elif words[0] == "endmenu": - if extra_chapters: - sys.stdout.write("|}\n") - sys.stdout.write("\n") - elif words[0] == "source": - fn=zapquotes(words[1]) - for name in glob.glob(fn): - readfile(name) - elif words[0] in ("default","depends", "select", "if", "endif", "#"): pass - #else: sys.stderr.write("unknown: %s\n" % i) - if helplen: sys.stdout.write("||\n") - -def main(): - import sys, time - - if len(sys.argv)!=3: - sys.stderr.write("Usage: kconfig2wiki kconfigfile version\n") - sys.exit(1) - - sys.stdout.write("This is an automatically generated list of '''coreboot compile-time options'''.\n") - sys.stdout.write("\nLast update: %s\n" % sys.argv[2]) - sys.stdout.write("{| border=\"0\" style=\"font-size: smaller\"\n"); - sys.stdout.write("|- bgcolor=\"#6699dd\"\n") - sys.stdout.write("! align=\"left\" | Option\n") - sys.stdout.write("! align=\"left\" | Source\n") - sys.stdout.write("! align=\"left\" | Format\n") - sys.stdout.write("! align=\"left\" | Short Description\n") - sys.stdout.write("! align=\"left\" | Description\n") - readfile(sys.argv[1]) - sys.stdout.write("|}\n") - -if __name__ == "__main__": - main() -- cgit v1.2.3