Mercurial > treepkg
diff bin/runtreepkg.py @ 78:9a602d8eaa60
initial revision of the subversion repository
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Tue, 24 Apr 2012 17:13:43 +0200 |
parents | |
children | 2630a1c18816 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/runtreepkg.py Tue Apr 24 17:13:43 2012 +0200 @@ -0,0 +1,64 @@ +#! /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.")) + 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], + **treepkg_opts) + if options.once: + group.check_package_tracks() + else: + group.run() + +main()