diff bin/listpackages.py @ 89:3caf4a5ecbf0

Add scripts that help publish the packages produced by the tree packager
author Bernhard Herzog <bh@intevation.de>
date Tue, 11 Sep 2007 13:48:18 +0000
parents
children 24d119c27150
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/listpackages.py	Tue Sep 11 13:48:18 2007 +0000
@@ -0,0 +1,73 @@
+#! /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.
+
+"""List the absolute filenames of packages created by treepkg"""
+
+import sys
+
+import treepkgcmd
+from treepkg.options import create_parser
+from treepkg.report import get_packager_group
+
+def parse_commandline():
+    parser = create_parser()
+    parser.set_defaults(binary=False, source=False)
+    parser.add_option("--revision", type="int",
+                      help=("The revision whose files are to be listed."
+                            " If not given, the latest revision is used"))
+    parser.add_option("--track",
+                      help=("The package track whose files are to be listed"))
+    parser.add_option("--source", action="store_true",
+                      help=("List source packages"))
+    parser.add_option("--binary", action="store_true",
+                      help=("List binary packages"))
+    return parser.parse_args()
+
+
+def list_track_packages(track, revision, source, binary):
+    revisions = track.get_revisions()
+    if not revisions:
+        print >>sys.stderr, "No revisions have been packaged"
+        sys.exit(1)
+
+    if revision is None:
+        revpkg = revisions[-1]
+    else:
+        for revpkg in revisions:
+            if revpkg.revision == revision:
+                break
+        else:
+            revpkg = None
+
+    if revpkg is not None:
+        if source:
+            for filename in revpkg.list_source_files():
+                print filename
+        if binary:
+            for filename in revpkg.list_binary_files():
+                print filename
+    else:
+        print >>sys.stderr, "No revision", repr(revision)
+        sys.exit(1)
+
+def list_packages(config_file, trackname, revision, source, binary):
+    group = get_packager_group(config_file)
+    for track in group.get_package_tracks():
+        if track.name == trackname:
+            list_track_packages(track, revision, source, binary)
+            break
+    else:
+        print >>sys.stderr, "no track named", trackname
+        sys.exit(1)
+
+def main():
+    options, args = parse_commandline()
+    list_packages(options.config_file, options.track, options.revision,
+                  source=options.source, binary=options.binary)
+
+main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)