comparison bin/reportstatus.py @ 147:cfeb0251055b

Add reportstatus.py flag --sort-on= to let the user choose the sort field.
author Bernhard Herzog <bh@intevation.de>
date Thu, 05 Jun 2008 11:06:58 +0000
parents 123e9a5f31fa
children 15de52d55432
comparison
equal deleted inserted replaced
146:1766e2ee9457 147:cfeb0251055b
15 import treepkgcmd 15 import treepkgcmd
16 from treepkg.options import create_parser 16 from treepkg.options import create_parser
17 from treepkg.report import get_packager_group, prepare_report 17 from treepkg.report import get_packager_group, prepare_report
18 18
19 def parse_commandline(): 19 def parse_commandline():
20 return create_parser().parse_args() 20 parser = create_parser()
21 parser.set_defaults(sort_on="start-date")
22 parser.add_option("--sort-on",
23 help=("Field to sort on;"
24 " either start-date (the default) or revision"))
25 return parser.parse_args()
21 26
22 27
23 def report_text(group): 28 def report_text(group, sort_on):
24 report = prepare_report(group) 29 report = prepare_report(group)
25 for revno, row in report.revisions.sorted_by_revision(): 30 if sort_on == "revision":
26 for col in row: 31 sorted = (col for revno, row in report.revisions.sorted_by_revision()
27 if col: 32 for col in row
28 print "%s %s: %s" % (col.name, revno, col.status.desc) 33 if col)
29 if col.status.start: 34 elif sort_on == "start-date":
30 print " Start:", col.status.start 35 sorted = (row for start, row in report.revisions.sorted_by_startdate())
31 print " Stop:", col.status.stop 36 else:
32 print 37 raise ValueError("Unknown sort field %r" % sort_on)
38
39 for item in sorted:
40 print "%s %s: %s" % (item.name, item.revno, item.status.desc)
41 print " Start:", item.status.start
42 print " Stop:", item.status.stop
43 print
33 44
34 def main(): 45 def main():
35 options, args = parse_commandline() 46 options, args = parse_commandline()
36 group = get_packager_group(options.config_file) 47 group = get_packager_group(options.config_file)
37 report_text(group) 48 report_text(group, options.sort_on)
38 49
39 50
40 main() 51 main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)