# HG changeset patch # User Bernhard Herzog # Date 1212664018 0 # Node ID cfeb0251055bcd1adafe5fc79192ebe6f37abed3 # Parent 1766e2ee94571a9d2102d763c4b111e22810598d Add reportstatus.py flag --sort-on= to let the user choose the sort field. diff -r 1766e2ee9457 -r cfeb0251055b bin/reportstatus.py --- a/bin/reportstatus.py Thu Jun 05 11:05:55 2008 +0000 +++ b/bin/reportstatus.py Thu Jun 05 11:06:58 2008 +0000 @@ -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()