reposync/scripts/index.py

49 lines
1.1 KiB
Python

import os, sys, re
import datetime
from pprint import pprint
base_path = sys.argv[1]
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(base_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)
pprint(dists)
logs = {}
for dist in dists:
logs[dist] = []
for logline in log_file:
print(logline)
time, stat, dist = logline.split(" ")
if stat == "DONE":
time = datetime.datetime.strptime(time, '%Y%m%d_%H%M')
if dist in logs.keys():
logs[dist].append(time)
last = {}
for dist in logs:
if logs[dist]:
last[dist] = sorted(logs[dist])[-1].strftime("%Y-%m-%d %H:%M")
else:
last[dist] = "Not Synced"
pprint(last)
for dist in last:
html_file = html_file.replace(f"@@{dist}@@", last[dist])
with open(index, 'w') as f:
f.write(html_file)