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()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)