summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/support/gitfile-info/gfi-run.py
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/support/gitfile-info/gfi-run.py')
-rw-r--r--Master/texmf-dist/doc/support/gitfile-info/gfi-run.py75
1 files changed, 75 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/gitfile-info/gfi-run.py b/Master/texmf-dist/doc/support/gitfile-info/gfi-run.py
new file mode 100644
index 00000000000..93806bf53ba
--- /dev/null
+++ b/Master/texmf-dist/doc/support/gitfile-info/gfi-run.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# -*- mode:python -*-
+import os
+import sys
+import time
+import codecs
+from git import Repo
+import locale
+# Locales for date set up to de_DE
+# Please edit to you needs
+locale.setlocale(locale.LC_ALL, 'de_DE')
+
+# 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
+
+# check for specific file (else) or
+# every tex file within the git
+if len(sys.argv) <= 1:
+ # get all the files within the git
+ commFiles = git.ls_files(full_name=True).split("\n")
+
+ # iterate through all files and read date/author/commit and
+ # write in the help file
+ for fl in commFiles:
+ flname, flext = os.path.splitext(fl)
+ if flext == '.tex':
+ rawdate = int(git.log('-1', fl,
+ pretty='format:"%at"').split('"')[1])
+ date = [time.strftime("%d. %B %Y %H:%M", time.localtime(rawdate)),
+ time.strftime("%d", time.localtime(rawdate)),
+ time.strftime("%m", time.localtime(rawdate)),
+ time.strftime("%Y", time.localtime(rawdate)),
+ time.strftime("%H", time.localtime(rawdate)),
+ time.strftime("%M", time.localtime(rawdate))]
+ author = [git.log('-1', fl, pretty='format:"%an"').split('"')[1],
+ git.log('-1', fl, pretty='format:"%ae"').split('"')[1]]
+ commit = [git.log('-1', fl, pretty='format:"%H"').split('"')[1],
+ git.log('-1', fl, pretty='format:"%h"').split('"')[1]]
+ 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
+else:
+ # get the specific file, read date/author/commit and
+ # write the help file
+ fl = sys.argv[1]
+ flname, flext = os.path.splitext(fl)
+ rawdate = int(git.log('-1', fl, pretty='format:"%at"').split('"')[1])
+ date = [time.strftime("%d. %B %Y %H:%M", time.localtime(rawdate)),
+ time.strftime("%d", time.localtime(rawdate)),
+ time.strftime("%m", time.localtime(rawdate)),
+ time.strftime("%Y", time.localtime(rawdate)),
+ time.strftime("%H", time.localtime(rawdate)),
+ time.strftime("%M", time.localtime(rawdate))]
+ author = [git.log('-1', fl, pretty='format:"%an"').split('"')[1],
+ git.log('-1', fl, pretty='format:"%ae"').split('"')[1]]
+ commit = [git.log('-1', fl, pretty='format:"%H"').split('"')[1],
+ git.log('-1', fl, pretty='format:"%h"').split('"')[1]]
+ 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