Mercurial > treepkg
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):