2 import distutils.version
4 from wizard import app, command, deploy, util
7 options, str_show = parse_args(argv, baton)
10 apps = app.applications()
11 show = set(apps[x] for x in str_show)
18 for d in deploy.parse_install_lines(str_show, options.versions_path):
19 c_application.setdefault(d.application, util.Counter())
20 version = truncate(d.app_version.version)
21 c_application[d.application].count(version)
23 show.add(d.application)
25 print "No applications found"
26 for application in show:
27 counter = c_application[application]
29 print "%-20s %3d installs" % (application.name, total)
31 for version in sorted(counter.keys(), key=distutils.version.LooseVersion):
33 graph = '+' * int(math.ceil(float(v)/vmax * HISTOGRAM_WIDTH))
34 print " %-16s %3d %s" % (version, v, graph)
37 def truncate(version):
38 return str(version).partition('-scripts')[0]
40 def parse_args(argv, baton):
41 usage = """usage: %prog summary version [ARGS] [APP]
43 Prints graphs of version usage in autoinstallers
47 Show graphs for all autoinstall versions
48 %prog summary version mediawiki
49 Show graph for MediaWiki autoinstall versions"""
50 parser = command.WizardOptionParser(usage)
51 baton.push(parser, "versions_path")
52 options, args = parser.parse_all(argv)
54 parser.error("too many arguments")