diff -r 4841b443f1fd -r f65edc0382cc createdoc.py --- a/createdoc.py Wed Apr 25 00:06:27 2012 +0200 +++ b/createdoc.py Wed Apr 25 15:06:28 2012 +0200 @@ -5,7 +5,13 @@ from genshi import Markup loader = TemplateLoader('doc/tmpl', auto_reload=True) + +from glob import glob +import re +import os.path import inspect +from pkg_resources import parse_version + from docutils.core import publish_doctree import docutils @@ -13,6 +19,10 @@ from docutils import core from docutils.writers.html4css1 import Writer,HTMLTranslator +from iro.view.xmlrpc import TwistedInterface as Current +from iro import __version__ +from createerm import createSchemaPlot, tables, tables_cls + class NoHeaderHTMLTranslator(HTMLTranslator): def __init__(self, document): HTMLTranslator.__init__(self,document) @@ -38,9 +48,6 @@ return core.publish_from_doctree(d, writer=_w) -from iro.view.xmlrpc import TwistedInterface as Current - -from createerm import createSchemaPlot, tables, tables_cls class Link(): def __init__(self,name,title): @@ -169,6 +176,11 @@ self.description = Markup(core.publish_string(cls.__doc__,writer=_w)) +class File: + def __init__(self,path): + self.version = re.search("/iro-(.*).tar.gz",path).group(1) + self.name = os.path.basename(path) + def main(): sites=[Site("index.html","Iro"), @@ -177,11 +189,22 @@ Site("about.html","About us"), ] + files=[File(f) for f in glob("web/files/*tar.gz")] + files.sort(key=lambda a:parse_version(a.version),reverse=True) + code ="files/iro-%s.tar.gz"%__version__ + current_methods = dict(inspect.getmembers(Current())) current=[ Method(i,current_methods) for i in Current().listMethods() if i != "listMethods" ] t = [Table(tables_cls[str(f)]) for f in tables] - createSchemaPlot('doc/images/db-schema.svg') + createSchemaPlot('web/images/db-schema.svg') + + gd = {"sites":sites, + "current":current, + "tables": t, + "code":code, + "files":files + } for site in sites: print("generiere %s" % site.name) @@ -189,8 +212,8 @@ def a(s): if s == site: return {"class":"menu active"} - stream = tmpl.generate(sites=sites, active=a, current=current, tables=t) - with open('doc/'+site.name, "w") as g: + stream = tmpl.generate(active=a, **gd) + with open('web/'+site.name, "w") as g: g.write(stream.render('html', doctype='html')) if __name__ == '__main__':