| #!/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:]) |