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