createdoc.py
branchdevel
changeset 277 f65edc0382cc
parent 271 b218238e76b9
child 281 76572d14bd27
--- 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__':