summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/support/gitfile-info/post-commit.py
blob: 832b0750d26b62993c51203089d9b476049a3f29 (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
44
45
46
47
48
49
50
51
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# -*- mode:python -*-
import os
import time
import codecs
from git import Repo
import locale
# Locales for date set up to de_DE
# Please edit to you needs
try:
    locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
except:
    try:
        locale.setlocale(locale.LC_ALL, 'de_DE')
    except:
        print ("Fehler: bitte prüfen Sie das Ergebnis von 'locale -d' und fügen es in das Script ein.")

# set up the git repo
# path is the current working directory
pathrepo = os.getcwd()
repo = Repo(pathrepo)
assert not repo.bare
git = repo.git
headcommit = repo.head.commit
index = repo.index

# get the commited/changed files and date/author/commit
commFiles = git.diff_tree('-r', 'HEAD', no_commit_id=True,
                          name_only=True).split("\n")
date = [time.strftime("%d. %B %Y %H:%M",
                      time.localtime(headcommit.authored_date)),
        time.strftime("%d", time.localtime(headcommit.authored_date)),
        time.strftime("%m", time.localtime(headcommit.authored_date)),
        time.strftime("%Y", time.localtime(headcommit.authored_date)),
        time.strftime("%H", time.localtime(headcommit.authored_date)),
        time.strftime("%M", time.localtime(headcommit.authored_date))]
author = [headcommit.author.name, headcommit.author.email]
commit = [headcommit.hexsha, headcommit.hexsha[:6]]

# iterate through all files and write the gfi help-files
for fl in commFiles:
    flname, flext = os.path.splitext(fl)
    if flext == '.tex':
        f = codecs.open(flname+".gfi", "w", encoding="utf-8")
        f.write("% gitfile-info control file\n")
        f.write("\\gfiSetDate{" + date[1] + "}{" + date[2] + "}{" + date[3]
                + "}{" + date[4] + "}{" + date[5] + "}{" + date[0] + "}\n")
        f.write("\\gfiSetAuthor{" + author[0] + "}{" + author[1] + "}\n")
        f.write("\\gfiSetCommit{" + commit[0] + "}{" + commit[1] + "}")
        f.close