aboutsummaryrefslogtreecommitdiff
path: root/libcxx/utils/consolidate-benchmarks
blob: c84607f1991c115f20f57a2017a0f63052ccdcfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python3

import argparse
import pathlib
import sys

def main(argv):
    parser = argparse.ArgumentParser(
        prog='consolidate-benchmarks',
        description='Consolidate benchmark result files (in LNT format) into a single LNT-format file.')
    parser.add_argument('files_or_directories', type=str, nargs='+',
        help='Path to files or directories containing LNT data to consolidate. Directories are searched '
             'recursively for files with a .lnt extension.')
    parser.add_argument('--output', '-o', type=argparse.FileType('w'), default=sys.stdout,
        help='Where to output the result. Default to stdout.')
    args = parser.parse_args(argv)

    files = []
    for arg in args.files_or_directories:
        path = pathlib.Path(arg)
        if path.is_dir():
            for p in path.rglob('*.lnt'):
                files.append(p)
        else:
            files.append(path)

    for file in files:
        for line in file.open().readlines():
            line = line.strip()
            if not line:
                continue
            args.output.write(line)
            args.output.write('\n')

if __name__ == '__main__':
    main(sys.argv[1:])