summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/buildstats-diff26
1 files changed, 24 insertions, 2 deletions
diff --git a/scripts/buildstats-diff b/scripts/buildstats-diff
index c9aa76a8fa..df1df432f1 100755
--- a/scripts/buildstats-diff
+++ b/scripts/buildstats-diff
@@ -12,6 +12,7 @@ import glob
12import logging 12import logging
13import math 13import math
14import os 14import os
15import pathlib
15import sys 16import sys
16from operator import attrgetter 17from operator import attrgetter
17 18
@@ -251,11 +252,32 @@ Script for comparing buildstats of two separate builds."""
251 "average over them") 252 "average over them")
252 parser.add_argument('--only-task', dest='only_tasks', metavar='TASK', action='append', default=[], 253 parser.add_argument('--only-task', dest='only_tasks', metavar='TASK', action='append', default=[],
253 help="Only include TASK in report. May be specified multiple times") 254 help="Only include TASK in report. May be specified multiple times")
254 parser.add_argument('buildstats1', metavar='BUILDSTATS1', help="'Left' buildstat") 255 parser.add_argument('buildstats1', metavar='BUILDSTATS1', nargs="?", help="'Left' buildstat")
255 parser.add_argument('buildstats2', metavar='BUILDSTATS2', help="'Right' buildstat") 256 parser.add_argument('buildstats2', metavar='BUILDSTATS2', nargs="?", help="'Right' buildstat")
256 257
257 args = parser.parse_args(argv) 258 args = parser.parse_args(argv)
258 259
260 if args.buildstats1 and args.buildstats2:
261 # Both paths specified
262 pass
263 elif args.buildstats1 or args.buildstats2:
264 # Just one path specified, this is an error
265 parser.print_usage(sys.stderr)
266 print("Either specify two buildstats paths, or none to use the last two paths.", file=sys.stderr)
267 sys.exit(1)
268 else:
269 # No paths specified, try to find the last two buildstats
270 try:
271 buildstats_dir = pathlib.Path(os.environ["BUILDDIR"]) / "tmp" / "buildstats"
272 paths = sorted(buildstats_dir.iterdir())
273 args.buildstats2 = paths.pop()
274 args.buildstats1 = paths.pop()
275 print(f"Comparing {args.buildstats1} -> {args.buildstats2}\n")
276 except KeyError:
277 parser.print_usage(sys.stderr)
278 print("Build environment has not been configured, cannot find buildstats", file=sys.stderr)
279 sys.exit(1)
280
259 # We do not nedd/want to read all buildstats if we just want to look at the 281 # We do not nedd/want to read all buildstats if we just want to look at the
260 # package versions 282 # package versions
261 if args.ver_diff: 283 if args.ver_diff: