changeset 66:3c2e8cb7e658

merge
author Bernhard Herzog <bh@intevation.de>
date Wed, 11 Apr 2007 17:05:48 +0200
parents bebe06ff4bd6 (diff) 353912e12d53 (current diff)
children 517253fa987f
files
diffstat 2 files changed, 59 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/createstaticweb.py	Wed Apr 11 17:05:48 2007 +0200
@@ -0,0 +1,33 @@
+#! /usr/bin/python2.4
+# Copyright (C) 2007 by Intevation GmbH
+# Authors:
+# Bernhard Herzog <bh@intevation.de>
+#
+# This program is free software under the GPL (>=v2)
+# Read the file COPYING coming with the software for details.
+
+"""Creates static a static web-site with a status report"""
+
+import os
+from optparse import OptionParser
+
+from treepkg.web import Status
+
+def parse_commandline():
+    parser = OptionParser()
+    dirname = os.path.dirname(__file__)
+    parser.set_defaults(config_file=os.path.join(dirname, "treepkg.cfg"))
+    parser.add_option("--config-file",
+                      help=("The tree packager config file."
+                            " Default treepkg.cfg"))
+    return parser.parse_args()
+
+def create_static_site(treepkg_config, destdir):
+    status = Status(treepkg_config=treepkg_config)
+    status.create_static_site(destdir)
+
+def main():
+    options, args = parse_commandline()
+    create_static_site(options.config_file, args[0])
+
+main()
--- a/treepkg/web.py	Tue Apr 10 20:16:33 2007 +0200
+++ b/treepkg/web.py	Wed Apr 11 17:05:48 2007 +0200
@@ -6,6 +6,7 @@
 # Read the file COPYING coming with the software for details.
 
 import os
+import shutil
 
 from genshi.template import TemplateLoader
 
@@ -52,6 +53,31 @@
         else:
             raise cherrypy.HTTPError(status="404")
 
+    def create_static_site(self, destdir):
+        """Creates a static web-page under destdir"""
+        # make sure we have an empty destdir
+        shutil.rmtree(destdir, True)
+        os.mkdir(destdir)
+
+        # create the index file
+        f = open(os.path.join(destdir, "index.html"), "wt")
+        f.write(self.index())
+        f.close()
+
+        # symlink the build-logs
+        group = report.get_packager_group(self.treepkg_config)
+        for track in group.get_package_tracks():
+            trackdir = os.path.join(destdir, track.name)
+            for revision in track.get_revisions():
+                revdir = os.path.join(trackdir, str(revision.revision))
+                if revision.has_build_log():
+                    if not os.path.isdir(trackdir):
+                        os.mkdir(trackdir)
+                    os.mkdir(revdir)
+                    os.symlink(revision.build_log,
+                               os.path.join(revdir, "build.log"))
+
+
 
 
 class TreePKG(object):
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)