# HG changeset patch # User Bernhard Herzog # Date 1176303948 -7200 # Node ID 3c2e8cb7e65861e8a87b76aa62d19316f7ed3b91 # Parent bebe06ff4bd622d09b7414c9ccde3112a76e2bc6# Parent 353912e12d53ee825c5de797323e6766b8da7a27 merge diff -r 353912e12d53 -r 3c2e8cb7e658 createstaticweb.py --- /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 +# +# 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() diff -r 353912e12d53 -r 3c2e8cb7e658 treepkg/web.py --- 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):