brintos

brintos / llvm-project-archived public Read only

0
0
Text · 788 B · e4de4d3 Raw
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