brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · c84607f Raw
37 lines · plain
1#!/usr/bin/env python32 3import argparse4import pathlib5import sys6 7def main(argv):8    parser = argparse.ArgumentParser(9        prog='consolidate-benchmarks',10        description='Consolidate benchmark result files (in LNT format) into a single LNT-format file.')11    parser.add_argument('files_or_directories', type=str, nargs='+',12        help='Path to files or directories containing LNT data to consolidate. Directories are searched '13             'recursively for files with a .lnt extension.')14    parser.add_argument('--output', '-o', type=argparse.FileType('w'), default=sys.stdout,15        help='Where to output the result. Default to stdout.')16    args = parser.parse_args(argv)17 18    files = []19    for arg in args.files_or_directories:20        path = pathlib.Path(arg)21        if path.is_dir():22            for p in path.rglob('*.lnt'):23                files.append(p)24        else:25            files.append(path)26 27    for file in files:28        for line in file.open().readlines():29            line = line.strip()30            if not line:31                continue32            args.output.write(line)33            args.output.write('\n')34 35if __name__ == '__main__':36    main(sys.argv[1:])37