Mercurial > treepkg
view bin/listpackages.py @ 125:34e08d52956e
Make the import_packager_module function more flexible. The modules may
now also define a RevisionPackager and a BinaryPackager. See the
docstring for details of the new rules. Also add some more tests.
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Thu, 22 May 2008 18:12:30 +0000 |
parents | 3caf4a5ecbf0 |
children | 24d119c27150 |
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. """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()