view runtreepkg.py @ 26:06fba656dde8

fix typo
author Bernhard Herzog <bh@intevation.de>
date Wed, 14 Mar 2007 17:48:23 +0100
parents 2bfb84bc4350
children 206d63ee310e
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 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
    group = PackagerGroup([create_package_line(**opts)
                           for opts in packager_opts],
                          **treepkg_opts)
    if options.once:
        group.check_package_lines()
    else:
        group.run()

main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)