view runtreepkg.py @ 52:78cf5f6778ec

Rename 'packagel ine' -> 'package track'
author Bernhard Herzog <bh@intevation.de>
date Tue, 03 Apr 2007 20:33:33 +0200
parents 206d63ee310e
children
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_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 = 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 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()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)