[Treepkg-commits] r72 - trunk/bin

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Jun 5 13:06:58 CEST 2008


Author: bh
Date: 2008-06-05 13:06:58 +0200 (Thu, 05 Jun 2008)
New Revision: 72

Modified:
   trunk/bin/reportstatus.py
Log:
Add reportstatus.py flag --sort-on= to let the user choose the sort field.


Modified: trunk/bin/reportstatus.py
===================================================================
--- trunk/bin/reportstatus.py	2008-06-05 11:05:55 UTC (rev 71)
+++ trunk/bin/reportstatus.py	2008-06-05 11:06:58 UTC (rev 72)
@@ -17,24 +17,35 @@
 from treepkg.report import get_packager_group, prepare_report
 
 def parse_commandline():
-    return create_parser().parse_args()
+    parser = create_parser()
+    parser.set_defaults(sort_on="start-date")
+    parser.add_option("--sort-on",
+                      help=("Field to sort on;"
+                            " either start-date (the default) or revision"))
+    return parser.parse_args()
 
 
-def report_text(group):
+def report_text(group, sort_on):
     report = prepare_report(group)
-    for revno, row in report.revisions.sorted_by_revision():
-        for col in row:
-            if col:
-                print "%s %s: %s" % (col.name, revno, col.status.desc)
-                if col.status.start:
-                    print "    Start:", col.status.start
-                    print "     Stop:", col.status.stop
-                print
+    if sort_on == "revision":
+        sorted = (col for revno, row in report.revisions.sorted_by_revision()
+                      for col in row
+                      if col)
+    elif sort_on == "start-date":
+        sorted = (row for start, row in report.revisions.sorted_by_startdate())
+    else:
+        raise ValueError("Unknown sort field %r" % sort_on)
 
+    for item in sorted:
+        print "%s %s: %s" % (item.name, item.revno, item.status.desc)
+        print "    Start:", item.status.start
+        print "     Stop:", item.status.stop
+        print
+
 def main():
     options, args = parse_commandline()
     group = get_packager_group(options.config_file)
-    report_text(group)
+    report_text(group, options.sort_on)
 
 
 main()



More information about the Treepkg-commits mailing list