#!/usr/bin/env python3 | |
""" | |
Merge .stats files generated by llvm tools | |
merge-stats.py takes as argument a list of stats files to merge | |
and output the result on stdout | |
Usage: | |
merge-stats.py $(find ./builddir/ -name "*.stats") > total.stats | |
""" | |
import json | |
import sys | |
result = {} | |
for arg in range(1, len(sys.argv)): | |
with open(sys.argv[arg], "r", encoding="utf-8", errors="ignore") as f: | |
text = f.read() | |
try: | |
data = json.loads(text) | |
except: | |
print("ignored %s: failed to parse" % sys.argv[arg], file=sys.stderr) | |
continue | |
for key in data: | |
if key in result: | |
result[key] += data[key] | |
else: | |
result[key] = data[key] | |
out = json.dumps(result, indent=2) | |
print(out) |