blob: 160dc7cafeef7b654cbffa981a22031ce17131ed (
plain)
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
|
import os
import subprocess
from time import mktime, ctime
from email.utils import parsedate
def file_last_modified(path):
git_time = f"git log -n1 --pretty=%aD {path}".split()
try:
mod_time = subprocess.check_output(git_time)
except:
# File is not in the git log, no biggie, just blank the date
return None
# Git outputs in RFC2822 format
return parsedate(mod_time.decode('ascii').strip())
updates = {}
dirs = [x for x in os.listdir()
if os.path.isdir(x) and not x.startswith(".")
]
for top in dirs:
for root,_,files in os.walk(top):
for f in files:
if f.endswith(".html") or f.endswith(".txt"):
path = os.path.join(root, f)
t = file_last_modified(path)
if t:
updates[path] = mktime(t)
print("<html>")
print("<body>")
print("<h3>LATEST CHANGES</h3>")
print("<ul>")
for f, t in sorted(updates.items(),
key=lambda x: x[1],
reverse=True)[:10]:
#print(f, ctime(t), sep="\t")
print(f"\t<li><a href={f}>{f.split()[-1]}</a> - Updated: {ctime(t)}</li>")
print("</ul>")
print("</body>")
print("</html>")
|