Mercurial > treepkg
view runtreepkg.py @ 40:c544903eeced
Add real enums for status information
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Thu, 15 Mar 2007 21:03:44 +0100 |
parents | 206d63ee310e |
children | 78cf5f6778ec |
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 from treepkg.packager import create_package_line, 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 = OptionParser() parser.set_defaults(config_file=os.path.join(os.path.dirname(__file__), "treepkg.cfg")) parser.add_option("--config-file", help=("The tree packager config file." " Default treepkg.cfg")) 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 lines found named %r" % name if packager_opts: group = PackagerGroup([create_package_line(**opts) for opts in packager_opts], **treepkg_opts) if options.once: group.check_package_lines() else: group.run() main()