33 lines · python
1#!/usr/bin/env python32"""3Merge .stats files generated by llvm tools4 5merge-stats.py takes as argument a list of stats files to merge6and output the result on stdout7 8Usage:9 merge-stats.py $(find ./builddir/ -name "*.stats") > total.stats10"""11 12import json13import sys14 15result = {}16 17for arg in range(1, len(sys.argv)):18 with open(sys.argv[arg], "r", encoding="utf-8", errors="ignore") as f:19 text = f.read()20 try:21 data = json.loads(text)22 except:23 print("ignored %s: failed to parse" % sys.argv[arg], file=sys.stderr)24 continue25 for key in data:26 if key in result:27 result[key] += data[key]28 else:29 result[key] = data[key]30 31out = json.dumps(result, indent=2)32print(out)33