summaryrefslogtreecommitdiffstats
path: root/mgagnome
diff options
context:
space:
mode:
authorOlav Vitters <ovitters@mageia.org>2012-03-21 19:53:09 +0000
committerOlav Vitters <ovitters@mageia.org>2012-03-21 19:53:09 +0000
commitfbf4d8ae217cbd2c925cf2c2bb1a3ce14ca00470 (patch)
treefb60e980990410712afebc8c7ed923fee044cdcc /mgagnome
parentf84c15425535039e3c5f2bba2b65b388e340e012 (diff)
downloadmgagnome-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-xmgagnome17
1 files changed, 16 insertions, 1 deletions
diff --git a/mgagnome b/mgagnome
index f8499fe..9da7824 100755
--- a/mgagnome
+++ b/mgagnome
@@ -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
)