Author: stepan Date: Tue Feb 9 16:15:29 2010 New Revision: 5101 URL: http://tracker.coreboot.org/trac/coreboot/changeset/5101
Log: I took Rob Landley's nice "menuconfig2html.py" script from http://landley.net/hg/kdocs and modified it to produce MediaWiki output for coreboot's Option List at http://coreboot.org/Coreboot_Options. The attached patch exchanges our old ("newconfig") optionlist script with the new one.
Signed-off-by: Stefan Reinauer stepan@coresystems.de Acked-by: Patrick Georgi patrick.georgi@coresystems.de
Added: trunk/util/optionlist/kconfig2wiki (contents, props changed) Deleted: trunk/util/optionlist/Options-wiki.xsl trunk/util/optionlist/Options.xsl trunk/util/optionlist/mkOptionList.py Modified: trunk/util/optionlist/Makefile trunk/util/optionlist/README
Modified: trunk/util/optionlist/Makefile ============================================================================== --- trunk/util/optionlist/Makefile Tue Feb 9 13:32:55 2010 (r5100) +++ trunk/util/optionlist/Makefile Tue Feb 9 16:15:29 2010 (r5101) @@ -1,10 +1,9 @@ # -# Copyright (C) 2005 Stefan Reinauer stepan@coresystems.de +# Copyright (C) 2010 coresystems GmbH # # 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; either version 2 of the License, or -# (at your option) any later version. +# 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 @@ -16,17 +15,12 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #
-all: html wiki
-html: - ./mkOptionList.py - @#saxon Options.xml Options.xsl > Options.html - xsltproc Options.xsl Options.xml > Options.html - -wiki: - ./mkOptionList.py - xsltproc Options-wiki.xsl Options.xml > Options.wiki +SVNVERSION := $(shell LC_ALL=C svnversion -cn ../.. | sed -e "s/.*://" -e "s/([0-9]*).*/\1/" | grep "[0-9]" || LC_ALL=C svn info . | grep ^Revision | sed "s/.*[[:blank:]]+([0-9]*)[^0-9]*/\1/" | grep "[0-9]" || echo unknown) + +all: + cd ../..; util/optionlist/kconfig2wiki src/Kconfig $(SVNVERSION) > util/optionlist/Options.wiki
clean: - rm -rf Options.xml Options.html Options.wiki + rm -rf Options.wiki
Modified: trunk/util/optionlist/README ============================================================================== --- trunk/util/optionlist/README Tue Feb 9 13:32:55 2010 (r5100) +++ trunk/util/optionlist/README Tue Feb 9 16:15:29 2010 (r5101) @@ -1,46 +1 @@ -I would like to contribute the following to the coreboot wiki in case -it's useable: - -1. I have written a rather small Python script to convert the Options.lb - into an XML file which is much more useable for the web in most cases. - -2. I have written a XSLT to convert the XML file to (X)HTML to be able - to present it as a table. - -Florob (Florian Zeitz florian-zeitz@lycos.de) - - -ChangeLog ---------- - -* 2005-03-19 stepan - - fix xml stylesheet to work with xsltproc and saxon - - add Makefile - - make script a bit more verbose - -* 2005-03-15 florob - - Initial version - - -License -------- - -Copyright (C) 2005 Florian Zeitz florian-zeitz@lycos.de -Copyright (C) 2005-2006 Stefan Reinauer stepan@coresystems.de -Copyright (C) 2006 Uwe Hermann uwe@hermann-uwe.de - -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; either version 2 of the License, or -(at your option) any later version. - -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. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - +This script creates the page http://www.coreboot.org/Coreboot_Options
Added: trunk/util/optionlist/kconfig2wiki ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/util/optionlist/kconfig2wiki Tue Feb 9 16:15:29 2010 (r5101) @@ -0,0 +1,133 @@ +#!/usr/bin/python +# +# kconfig2wiki - Kconfig to MediaWiki converter for +# http://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. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +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]) + readfile(fn) + 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. (r%s)\n" % (time.strftime('%Y/%m/%d %H:%M:%S'),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()