68 lines
1.6 KiB
Python
Executable File
68 lines
1.6 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import os, sys, re
|
|
import datetime
|
|
|
|
base_path = sys.argv[1]
|
|
out_path = sys.argv[2]
|
|
assert os.path.exists(base_path)
|
|
|
|
log_path = os.path.join(base_path, "logs/all.log")
|
|
assert os.path.exists(log_path)
|
|
|
|
html_path = os.path.join(base_path, "scripts/base.html")
|
|
index = os.path.join(out_path, "index.html")
|
|
assert os.path.exists(html_path)
|
|
|
|
with open(log_path, 'r') as f:
|
|
log_file = f.read().splitlines()
|
|
log_file.reverse()
|
|
|
|
with open(html_path, 'r') as f:
|
|
html_file = f.read()
|
|
dists = re.findall("@@([^@@]+)@@", html_file)
|
|
|
|
print(dists)
|
|
|
|
logs = {}
|
|
for dist in dists:
|
|
logs[dist] = []
|
|
|
|
for dist in logs:
|
|
for logline in log_file:
|
|
time, stat, disk = logline.split(" ")
|
|
if stat == "DONE" and dist == disk:
|
|
logs[dist] = datetime.datetime.strptime(time, '%Y%m%d_%H%M').strftime("%Y-%m-%d %H:%M")
|
|
break
|
|
logs[dist] = "Not Synced"
|
|
|
|
stats = {}
|
|
for dist in dists:
|
|
for logline in log_file:
|
|
time, stat, disk = logline.split(" ")
|
|
if dist == disk:
|
|
stats[dist] = stat, datetime.datetime.strptime(time, '%Y%m%d_%H%M').strftime("%Y-%m-%d %H:%M")
|
|
break
|
|
stats[dist] = (-1, "Not Synced")
|
|
|
|
print(logs)
|
|
print(stats)
|
|
|
|
for dist in dists:
|
|
stat, tt = stats[dist]
|
|
if stat == "ERROR":
|
|
stat = f" (Error @ {tt})"
|
|
elif stat == "STARTED":
|
|
stat = f" (Running @ {tt})"
|
|
else:
|
|
stat = ""
|
|
|
|
if stat:
|
|
stat = f"</p><p class=\"text-gray-500 dark:text-gray-400\">{stat}</p>"
|
|
html_file = html_file.replace(f"@@{dist}@@", f"{logs[dist]}{stat}")
|
|
|
|
with open(index, 'w') as f:
|
|
f.write(html_file)
|
|
|
|
print("Written to index.html")
|