Mercurial > treepkg
view bin/runtreepkg.py @ 441:eadcb1bb54e2
Merged revisions 388-399 via svnmerge from
svn+ssh://svn.wald.intevation.org/treepkg/branches/treepkg-status
........
r388 | bricks | 2010-07-28 10:38:50 +0200 (Mi, 28 Jul 2010) | 3 lines
fix if statement
upload hook should be called if it's not empty
........
r389 | bricks | 2010-07-28 13:38:00 +0200 (Mi, 28 Jul 2010) | 2 lines
only rsync specified architectures from cachedir to publishdir
........
r390 | bricks | 2010-07-29 14:07:57 +0200 (Do, 29 Jul 2010) | 2 lines
introduced after_copy_hook and made rsync upload to publishdir optional
........
r391 | bricks | 2010-07-29 15:43:39 +0200 (Do, 29 Jul 2010) | 3 lines
publish package must be default to get original behaviour
be more verbose at publishing
........
r392 | bricks | 2010-07-29 16:50:53 +0200 (Do, 29 Jul 2010) | 2 lines
fix handling of showing only successfull builds together with num packages
........
r393 | bricks | 2010-07-29 16:52:42 +0200 (Do, 29 Jul 2010) | 2 lines
fixed typo
........
r394 | bricks | 2010-07-29 16:59:10 +0200 (Do, 29 Jul 2010) | 2 lines
fixed another typo
........
r395 | bricks | 2010-07-29 18:05:54 +0200 (Do, 29 Jul 2010) | 3 lines
fixed another typo
treepkg is really slow with many revisions
........
r396 | bricks | 2010-08-02 12:41:55 +0200 (Mo, 02 Aug 2010) | 2 lines
fixed typos
........
r397 | bricks | 2010-08-02 17:36:12 +0200 (Mo, 02 Aug 2010) | 3 lines
be more error prone in listing different files
not checking if a dir exists caused several errors if a build wasn't successful
........
r398 | bricks | 2010-08-05 18:21:47 +0200 (Do, 05 Aug 2010) | 2 lines
review changes
........
r399 | bricks | 2010-08-06 13:06:08 +0200 (Fr, 06 Aug 2010) | 4 lines
cleanup modules
fix test_info testcases
added testcases for remove_trailingslashes and expand_filename
........
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Fri, 06 Aug 2010 13:41:54 +0000 |
parents | 5f442b0cf3a4 |
children | de78084fcbce |
line wrap: on
line source
#! /usr/bin/python # Copyright (C) 2007, 2008, 2009 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. """Starts the tree packager""" import sys import os import logging from optparse import OptionParser import treepkgcmd from treepkg.options import create_parser from treepkg.packager import create_package_track, PackagerGroup from treepkg.readconfig import read_config def initialize_logging(): """Initializes the logging system""" root = logging.getLogger() root.setLevel(logging.DEBUG) hdlr = logging.StreamHandler() fmt = logging.Formatter("%(asctime)s %(levelname)s %(message)s") hdlr.setFormatter(fmt) root.addHandler(hdlr) def handle_track_option(option, opt_str, value, parser): parsed_options = parser.values.track_options track_optname, value = value.split("=", 1) trackname, optname = track_optname.split(".") track_options = parsed_options.setdefault(trackname, dict()) track_options[optname] = value def parse_commandline(): parser = create_parser() parser.set_defaults(track_options=dict()) parser.add_option("--once", action="store_true", help=("Check the packagers only once and exit afterwards." " Without this option, the tree packager will" " check periodically.")) parser.add_option("--stop-on-error", action="store_true", help=("Stop the tree packager when a packaging" " attempt fails.")) parser.add_option("--revision", help=("SVN revision to update to before attempting" " to package.")) parser.add_option("--no-svn-update", action="store_true", help=("Do not update the SVN workingcopy before" " attempting to package.")) parser.add_option("--track-option", action="callback", type="string", callback=handle_track_option, help=("Sets a track-specific option." " The argument should be of the form" " TRACKNAME.OPTION=VALUE")) return parser.parse_args() def main(): options, args = parse_commandline() initialize_logging() treepkg_opts, packager_opts = read_config(options.config_file) if args: selected_tracks = set(args) else: selected_tracks = set(opts["name"] for opts in packager_opts) for opts in packager_opts: name = opts["name"] opts["do_build"] = name in selected_tracks selected_tracks.discard(name) if name in options.track_options: opts.update(options.track_options[name]) for name in selected_tracks: print >>sys.stderr, "No package track found named %r" % name if packager_opts: group = PackagerGroup([create_package_track(**opts) for opts in packager_opts], revision=options.revision, do_svn_update=not options.no_svn_update, stop_on_error=options.stop_on_error, **treepkg_opts) if options.once: group.check_package_tracks() else: group.run() main()