Mercurial > treepkg
view bin/runtreepkg.py @ 135:e5b4dea52297
Make more of RevisionPackager available to SourcePackager and
BinaryPackager. This includes changing how SourcePackager and
BinaryPackager are instantiated -- now the RevisionPackager instance is
given as the first parameter to the __init__ method and most of the
arguments formerly passed to __init__ are now automatiocally taken from
that.
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Tue, 27 May 2008 13:12:12 +0000 |
parents | 2630a1c18816 |
children | e83db4482aab |
line wrap: on
line source
#! /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. """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 parse_commandline(): parser = create_parser() 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("--revision", help=("SVN revision to update to before attempting" " to package.")) return parser.parse_args() def main(): options, args = parse_commandline() initialize_logging() treepkg_opts, packager_opts = read_config(options.config_file) if args: packager_opts = [opts for opts in packager_opts if opts["name"] in args] # check whether we got all of the names in args: for opts in packager_opts: name = opts["name"] if name in args: args.remove(name) for name in args: print >>sys.stderr, "No package tracks found named %r" % name if packager_opts: group = PackagerGroup([create_package_track(**opts) for opts in packager_opts], revision=options.revision, **treepkg_opts) if options.once: group.check_package_tracks() else: group.run() main()