blob: ec40c4c230ce3f039ae2ae5a59d83b8e1f11d2ee (
plain) (
blame)
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
37
38
39
40
41
42
43
44
45
46
|
#!/usr/bin/env spack-python
"""
This script is meant to be run using:
`spack python aggregate_logs.spack.py`
"""
import os
def find_logs(prefix, filename):
for root, _, files in os.walk(prefix):
if filename in files:
yield os.path.join(root, filename)
if __name__ == "__main__":
import json
from argparse import ArgumentParser
parser = ArgumentParser("aggregate_logs")
parser.add_argument("output_file")
parser.add_argument("--log", default="install_times.json")
parser.add_argument("--prefix", required=True)
args = parser.parse_args()
prefixes = [p for p in args.prefix.split(":") if os.path.exists(p)]
# Aggregate the install timers into a single json
data = []
# Look in the CWD for logs
local_log_path = os.path.join(os.getcwd(), args.log)
if os.path.exists(local_log_path):
with open(local_log_path) as fd:
data.append(json.load(fd))
# Look in the list of prefixes for logs
for prefix in prefixes:
logs = find_logs(prefix, args.log)
for log in logs:
with open(log) as fd:
data.append(json.load(fd))
with open(args.output_file, "w") as fd:
json.dump(data, fd)
|