pybootchartgui: split the output chart into multiple ones

Split the output chart into multiple ones to make it more readable, it
only works with "-o path", which means that it doesn't work if the user
doesn't want to save the chart to the disk. For example:

$ ./pybootchartgui.py /path/to/tmp/buildstats/core-image-sato-qemux86/201205301810/ -f svg -s 5 -o /tmp/
bootchart written to /tmp/bootchart_1.svg
bootchart written to /tmp/bootchart_2.svg
bootchart written to /tmp/bootchart_3.svg
bootchart written to /tmp/bootchart_4.svg
bootchart written to /tmp/bootchart_5.svg

[YOCTO #2403]

(From OE-Core rev: 04a34899e1c15a70babd97a3a59ccb9f8af05bad)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Robert Yang
2012-06-06 14:10:11 +08:00
committed by Richard Purdie
parent bc5b86f025
commit 0ad3f75432
2 changed files with 48 additions and 2 deletions

View File

@@ -17,6 +17,8 @@ def _mk_options_parser():
help="image format (...); default format ...")
parser.add_option("-o", "--output", dest="output", metavar="PATH", default=None,
help="output path (file or directory) where charts are stored")
parser.add_option("-s", "--split", dest="num", type=int, default=1,
help="split the output chart into <NUM> charts, only works with \"-o PATH\"")
parser.add_option("-n", "--no-prune", action="store_false", dest="prune", default=True,
help="do not prune the process tree")
parser.add_option("-q", "--quiet", action="store_true", dest="quiet", default=False,
@@ -59,8 +61,16 @@ def main(argv=None):
gui.show(res)
else:
filename = _get_filename(args, options)
batch.render(res, options.format, filename)
print "bootchart written to", filename
res_list = parsing.split_res(res, options.num)
n = 1
for r in res_list:
if len(res_list) == 1:
f = filename + "." + options.format
else:
f = filename + "_" + str(n) + "." + options.format
n = n + 1
batch.render(r, options.format, f)
print "bootchart written to", f
return 0
except parsing.ParseError, ex:
print("Parse error: %s" % ex)