diff options
author | Olav Vitters <ovitters@mageia.org> | 2012-03-21 19:53:09 +0000 |
---|---|---|
committer | Olav Vitters <ovitters@mageia.org> | 2012-03-21 19:53:09 +0000 |
commit | fbf4d8ae217cbd2c925cf2c2bb1a3ce14ca00470 (patch) | |
tree | fb60e980990410712afebc8c7ed923fee044cdcc /mgagnome | |
parent | f84c15425535039e3c5f2bba2b65b388e340e012 (diff) | |
download | mgagnome-fbf4d8ae217cbd2c925cf2c2bb1a3ce14ca00470.tar mgagnome-fbf4d8ae217cbd2c925cf2c2bb1a3ce14ca00470.tar.gz mgagnome-fbf4d8ae217cbd2c925cf2c2bb1a3ce14ca00470.tar.bz2 mgagnome-fbf4d8ae217cbd2c925cf2c2bb1a3ce14ca00470.tar.xz mgagnome-fbf4d8ae217cbd2c925cf2c2bb1a3ce14ca00470.zip |
packages command: allow sorting according to the order of a file
Diffstat (limited to 'mgagnome')
-rwxr-xr-x | mgagnome | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -46,6 +46,9 @@ import time # version freeze import datetime +# packages --sort +import itertools + MEDIA="Core Release Source" URL="http://download.gnome.org/sources/" PKGROOT='~/pkgs' @@ -618,7 +621,15 @@ def join_streams(show_version=False, only_diff_version=False): yield (package, module, package_version, spec_version, downstream.files[package]) def cmd_ls(options, parser): - for package, module, package_version, spec_version, downstream_files in sorted(join_streams(show_version=options.show_version, only_diff_version=options.diff)): + streams = join_streams(show_version=options.show_version, only_diff_version=options.diff) + if options.sort: + SORT=dict(zip(options.sort.read().splitlines(), itertools.count())) + + streams = sorted(streams, key=lambda a: (SORT.get(a[1], 9999), a[0])) + else: + streams = sorted(streams) + + for package, module, package_version, spec_version, downstream_files in streams: sys.stdout.write(package) if options.upstream: sys.stdout.write("\t%s" % module) if options.show_version: sys.stdout.write("\t%s\t%s" % (spec_version, package_version)) @@ -808,6 +819,10 @@ def main(): help="Show version numbers") subparser.add_argument( "--diff", action="store_true", dest="diff", help="Only show packages with different version") + subparser.add_argument( "--sort", type=argparse.FileType('r', 0), + dest="sort", metavar="FILE", + help="Sort packages according to order in given FILE") + subparser.set_defaults( func=cmd_ls, upstream=False, show_version=False, diff=False ) |