sty, doku, hooks init
This commit is contained in:
		
							
								
								
									
										146
									
								
								dokumentation.tex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								dokumentation.tex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,146 @@
 | 
			
		||||
\documentclass[a4paper]{ltxdoc}
 | 
			
		||||
\usepackage[utf8]{inputenc}
 | 
			
		||||
\usepackage[T1]{fontenc}
 | 
			
		||||
\usepackage[english,ngerman]{babel}
 | 
			
		||||
\usepackage{xparse,xargs}
 | 
			
		||||
\usepackage{newfloat}
 | 
			
		||||
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
 | 
			
		||||
\definecolor{blau}{rgb}{0,0,0.75}         
 | 
			
		||||
\definecolor{orange}{rgb}{0.8,0.3,0} 
 | 
			
		||||
%\usepackage[%
 | 
			
		||||
%	backend=biber,
 | 
			
		||||
%	sortlocale=de_DE,
 | 
			
		||||
%	style=authoryear,
 | 
			
		||||
%	bibencoding=UTF8,
 | 
			
		||||
%	block=space,
 | 
			
		||||
%	autocite=inline,
 | 
			
		||||
%	language=ngerman,
 | 
			
		||||
%]{biblatex}
 | 
			
		||||
%\addglobalbib{.bib}
 | 
			
		||||
%\renewcommand*{\mkbibnamelast}{\textsc}
 | 
			
		||||
 | 
			
		||||
%\DeclareCiteCommand{\citeauthorfull}
 | 
			
		||||
%  {%
 | 
			
		||||
%		\boolfalse{citetracker}%
 | 
			
		||||
%		\boolfalse{pagetracker}%
 | 
			
		||||
%		\usebibmacro{prenote}}
 | 
			
		||||
%  {\ifciteindex%
 | 
			
		||||
%     {\indexnames{labelname}}
 | 
			
		||||
%     {}%
 | 
			
		||||
%		 \printnames[first-last]{author}}
 | 
			
		||||
%  {\multicitedelim}
 | 
			
		||||
%  {\usebibmacro{postnote}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
\usepackage{hyperref}
 | 
			
		||||
\hypersetup{%
 | 
			
		||||
pdftitle = {\LaTeX-package for reading git commit info for specific files}
 | 
			
		||||
 pdfsubject = {}, %
 | 
			
		||||
 pdfkeywords = {LaTeX,CTAN,git,fileinfo,version,control}, %
 | 
			
		||||
 pdfauthor = {Andr\'e Hilbig}, %
 | 
			
		||||
 colorlinks = true, %
 | 
			
		||||
 hypertexnames = true, %
 | 
			
		||||
 linkcolor=blau, %
 | 
			
		||||
 filecolor=orange, %
 | 
			
		||||
 citecolor=blau, %
 | 
			
		||||
 menucolor=orange, %
 | 
			
		||||
 urlcolor=orange, %
 | 
			
		||||
 breaklinks=true %
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\usepackage{graphics,graphicx,textcomp}
 | 
			
		||||
\usepackage{placeins,float,caption,prettyref}
 | 
			
		||||
\usepackage{pdfpages,listings,xspace}
 | 
			
		||||
\usepackage{amssymb,multicol,pdflscape}
 | 
			
		||||
\usepackage[german=guillemets]{csquotes}
 | 
			
		||||
\newrefformat{sec}{Abschnitt\,\ref{#1}, S.\,\pageref{#1}}
 | 
			
		||||
\newrefformat{paket}{Paket~\ref{#1}, S.\,\pageref{#1}}
 | 
			
		||||
\newrefformat{klasse}{Klasse~\ref{#1}, S.\,\pageref{#1}}
 | 
			
		||||
\newrefformat{fig}{Abb.\,\ref{#1}}
 | 
			
		||||
\newrefformat{tab}{Tab.\,\ref{#1}}
 | 
			
		||||
\newrefformat{bsp}{Bsp.\,\ref{#1}, S.\,\pageref{#1}}
 | 
			
		||||
\newcommand{\refMacro}[1]{Makro \texttt{\textbackslash#1}, S.\,\pageref{#1}}
 | 
			
		||||
\DeclareFloatingEnvironment[name={Bsp.},
 | 
			
		||||
	listname={Beispielverzeichnis}, within=section]{example}
 | 
			
		||||
\floatstyle{ruled}
 | 
			
		||||
\restylefloat{example}
 | 
			
		||||
\NewDocumentEnvironment{beispiel}{o o m}{
 | 
			
		||||
 \begin{example}[ht!]
 | 
			
		||||
 \centering
 | 
			
		||||
 \vspace{0.2cm}
 | 
			
		||||
 \IfNoValueTF{#2}{
 | 
			
		||||
 	\caption{#3}
 | 
			
		||||
 }{
 | 
			
		||||
 	\caption[#2]{#3}
 | 
			
		||||
 }
 | 
			
		||||
 }{
 | 
			
		||||
	 \IfNoValueTF{#1}{
 | 
			
		||||
	 	\label{\theexample}
 | 
			
		||||
	 }{
 | 
			
		||||
	 	\label{#1}
 | 
			
		||||
	 }
 | 
			
		||||
 \vspace{0.2cm}
 | 
			
		||||
 \end{example}
 | 
			
		||||
 }
 | 
			
		||||
\DisableCrossrefs
 | 
			
		||||
\makeatletter
 | 
			
		||||
\makeatother
 | 
			
		||||
\lstset{  %
 | 
			
		||||
  language=[LaTeX]TeX,                 
 | 
			
		||||
  basicstyle=\small,            
 | 
			
		||||
  numbers=left,                    
 | 
			
		||||
  numberstyle=\footnotesize,           
 | 
			
		||||
  stepnumber=1,                    
 | 
			
		||||
  numbersep=5pt,                   
 | 
			
		||||
  backgroundcolor=\color{Peach!30!white},       
 | 
			
		||||
  showspaces=false,                
 | 
			
		||||
  showstringspaces=false,          
 | 
			
		||||
  showtabs=false,                  
 | 
			
		||||
  frame=single,
 | 
			
		||||
  tabsize=2,                       
 | 
			
		||||
  resetmargins=true,
 | 
			
		||||
  captionpos=b,                    
 | 
			
		||||
  title={},  
 | 
			
		||||
	caption={},	
 | 
			
		||||
  breaklines=true,
 | 
			
		||||
  breakautoindent=true,
 | 
			
		||||
  prebreak=\mbox{ $\curvearrowright$},
 | 
			
		||||
  postbreak=\mbox{$\rightsquigarrow$ },
 | 
			
		||||
  linewidth=\columnwidth,
 | 
			
		||||
  breakatwhitespace=true,         
 | 
			
		||||
  numberstyle=\tiny\color{gray},         
 | 
			
		||||
  keywordstyle=\color{OliveGreen}\textbf,           
 | 
			
		||||
  commentstyle=\color{gray}\itshape,        
 | 
			
		||||
  stringstyle=\color{mauve},          
 | 
			
		||||
  morekeywords={
 | 
			
		||||
		minisec, subsection, glqq, grqq, euro, Name, Vorname, Street,
 | 
			
		||||
		Plz, Stadt, MeinBeruf, EMail, Tel, Mobile, Sta, GebDatum, ID,
 | 
			
		||||
		Anhang, includepdf, includepdfmerge, cventry, cvlistitem,
 | 
			
		||||
		cvlanguage, definecolor, maketitle, makePerson, cp, ln, mkdir,
 | 
			
		||||
		todayOrt, todayDatum,	
 | 
			
		||||
  },
 | 
			
		||||
	literate=%
 | 
			
		||||
	{Ö}{{\"O}}1
 | 
			
		||||
	{Ä}{{\"A}}1
 | 
			
		||||
	{Ü}{{\"U}}1
 | 
			
		||||
	{ß}{\ss}2
 | 
			
		||||
	{ü}{{\"u}}1
 | 
			
		||||
	{ä}{{\"a}}1
 | 
			
		||||
	{ö}{{\"o}}1
 | 
			
		||||
	{»}{{\frqq}}4
 | 
			
		||||
	{«}{{\flqq}}4	
 | 
			
		||||
	{~}{$\sim$}1	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\xspaceaddexceptions{\guillemotright,\guillemotleft}
 | 
			
		||||
 | 
			
		||||
\CheckSum{0}
 | 
			
		||||
 | 
			
		||||
\author{André Hilbig}
 | 
			
		||||
 | 
			
		||||
\begin{document}
 | 
			
		||||
	\title{Gitfile-Info}
 | 
			
		||||
	%\clearpage
 | 
			
		||||
	%\addcontentsline{toc}{section}{Literatur}
 | 
			
		||||
	%\printbibliography
 | 
			
		||||
\end{document}
 | 
			
		||||
							
								
								
									
										69
									
								
								gfi-run
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										69
									
								
								gfi-run
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
# -*- mode:python -*-
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import time
 | 
			
		||||
import codecs
 | 
			
		||||
from git import Repo
 | 
			
		||||
import locale
 | 
			
		||||
locale.setlocale(locale.LC_ALL, 'de_DE')
 | 
			
		||||
 | 
			
		||||
pathrepo = os.getcwd()
 | 
			
		||||
repo = Repo(pathrepo)
 | 
			
		||||
assert not repo.bare
 | 
			
		||||
git = repo.git
 | 
			
		||||
headcommit = repo.head.commit
 | 
			
		||||
index = repo.index
 | 
			
		||||
 | 
			
		||||
if len(sys.argv) <= 1:
 | 
			
		||||
    commFiles = git.ls_files(full_name=True).split("\n")
 | 
			
		||||
    #commit = git.log('-1', format='%h').rstrip()
 | 
			
		||||
 | 
			
		||||
    #cmt = subprocess.check_output('git log -1 --format="%s" ', shell=True).decode("utf-8").rstrip()
 | 
			
		||||
 | 
			
		||||
    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.gmtime(rawdate)),
 | 
			
		||||
                    time.strftime("%d", time.gmtime(rawdate)),
 | 
			
		||||
                    time.strftime("%m", time.gmtime(rawdate)),
 | 
			
		||||
                    time.strftime("%Y", time.gmtime(rawdate)),
 | 
			
		||||
                    time.strftime("%H", time.gmtime(rawdate)),
 | 
			
		||||
                    time.strftime("%M", time.gmtime(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] + "}")
 | 
			
		||||
            #print("\\gfiSet{" + date + "}{" + author + "}{" + commit + "}")
 | 
			
		||||
            f.close
 | 
			
		||||
else:
 | 
			
		||||
    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.gmtime(rawdate)),
 | 
			
		||||
            time.strftime("%d", time.gmtime(rawdate)),
 | 
			
		||||
            time.strftime("%m", time.gmtime(rawdate)),
 | 
			
		||||
            time.strftime("%Y", time.gmtime(rawdate)),
 | 
			
		||||
            time.strftime("%H", time.gmtime(rawdate)),
 | 
			
		||||
            time.strftime("%M", time.gmtime(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] + "}")
 | 
			
		||||
    #print("\\gfiSet{" + date + "}{" + author + "}{" + commit + "}")
 | 
			
		||||
    f.close
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										106
									
								
								gitfile-info.sty
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								gitfile-info.sty
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,106 @@
 | 
			
		||||
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 | 
			
		||||
\ProvidesPackage{gitfile-info}
 | 
			
		||||
    [2016/06/22 v0.1 read file infos of one specific tex-file]
 | 
			
		||||
 | 
			
		||||
\RequirePackage{ifthen}
 | 
			
		||||
\RequirePackage{currfile}
 | 
			
		||||
\RequirePackage{xparse}
 | 
			
		||||
\RequirePackage{tcolorbox}
 | 
			
		||||
\tcbuselibrary{fitting, skins, breakable}
 | 
			
		||||
\tcbset{center title,fonttitle=\bfseries\sffamily}
 | 
			
		||||
\RequirePackage{hyperref}
 | 
			
		||||
 | 
			
		||||
\providecommand{\gfiGetDay}{gfi day}
 | 
			
		||||
\providecommand{\gfiGetMonth}{gfi month}
 | 
			
		||||
\providecommand{\gfiGetYear}{gfi year}
 | 
			
		||||
\providecommand{\gfiGetHour}{gfi hour}
 | 
			
		||||
\providecommand{\gfiGetMin}{gfi min}
 | 
			
		||||
\providecommand{\gfiGetAuthorName}{gfi author name}
 | 
			
		||||
\providecommand{\gfiGetAuthorMail}{gfi author email}
 | 
			
		||||
\providecommand{\gfiGetDate}{gfi date}
 | 
			
		||||
\providecommand{\gfiGetCommit}{gfi commit}
 | 
			
		||||
\providecommand{\gfiGetCommitAbr}{gfi commit short}
 | 
			
		||||
 | 
			
		||||
\providecommand{\gfiSetDate}[6]{%
 | 
			
		||||
	\renewcommand{\gfiGetDay}{#1}
 | 
			
		||||
	\renewcommand{\gfiGetMonth}{#2}
 | 
			
		||||
	\renewcommand{\gfiGetYear}{#3}
 | 
			
		||||
	\renewcommand{\gfiGetMin}{#4}
 | 
			
		||||
	\renewcommand{\gfiGetHour}{#5}
 | 
			
		||||
	\renewcommand{\gfiGetDate}{#6}
 | 
			
		||||
}
 | 
			
		||||
\providecommand{\gfiSetAuthor}[2]{%
 | 
			
		||||
	\renewcommand{\gfiGetAuthorName}{#1}
 | 
			
		||||
	\renewcommand{\gfiGetAuthorMail}{#2}
 | 
			
		||||
}
 | 
			
		||||
\providecommand{\gfiSetCommit}[2]{%
 | 
			
		||||
	\renewcommand{\gfiGetCommit}{#1}
 | 
			
		||||
	\renewcommand{\gfiGetCommitAbr}{#2}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\newtcolorbox{gfiInfoBox}{%
 | 
			
		||||
	every box on layer 2/.style={reset},%
 | 
			
		||||
	breakable,%
 | 
			
		||||
	title=\currfilename,%
 | 
			
		||||
	enhanced,%
 | 
			
		||||
	attach boxed title to top right={%
 | 
			
		||||
			yshift=-2mm,%
 | 
			
		||||
			xshift=-3mm,%
 | 
			
		||||
		},%
 | 
			
		||||
	boxed title style={%
 | 
			
		||||
		drop fuzzy shadow,%
 | 
			
		||||
	},%
 | 
			
		||||
	fontupper=\small,%
 | 
			
		||||
	before skip=2mm,after skip=3mm,%
 | 
			
		||||
	boxrule=0.4pt,left=5mm,right=2mm,top=1mm,bottom=1mm,%
 | 
			
		||||
	colback=yellow!50,%
 | 
			
		||||
	colframe=yellow!20!black,%
 | 
			
		||||
	sharp corners,rounded corners=southeast,arc is angular,arc=3mm,%
 | 
			
		||||
	underlay={%
 | 
			
		||||
		\path[fill=tcbcol@back!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
 | 
			
		||||
		\path[draw=tcbcol@frame,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
 | 
			
		||||
		\path[fill=yellow!50!black,draw=none] (interior.south west) rectangle	node[white,rotate=90]{\footnotesize\bfseries git} ([xshift=4mm]interior.north west);
 | 
			
		||||
		},%
 | 
			
		||||
	drop fuzzy shadow,%
 | 
			
		||||
}
 | 
			
		||||
\ProvideDocumentCommand{\gfiInfo}{O{none} O{none} O{none} O{gfiInfoBox}}{%
 | 
			
		||||
	\begin{#4}
 | 
			
		||||
		\textbf{Version:} \ifthenelse{\equal{#1}{none}}{\gfiGetCommit}{\gfiGetCommitAbr}\newline
 | 
			
		||||
		\textbf{Stand:} \ifthenelse{\equal{#2}{none}}{\gfiGetDate}{#2}\newline
 | 
			
		||||
		\textbf{Zuletzt bearbeitet von:}
 | 
			
		||||
			\ifthenelse{\equal{#3}{none}}{\href{mailto:\gfiGetAuthorMail}{\gfiGetAuthorName}}{#3}
 | 
			
		||||
	\end{#4}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\providecommand{\gfiCurrentConfig}{none}
 | 
			
		||||
\providecommand{\gfiInitJob}{%
 | 
			
		||||
	\IfFileExists{\jobname.gfi}{%
 | 
			
		||||
		\input{\jobname.gfi}
 | 
			
		||||
	}{%
 | 
			
		||||
		\@latex@warning@no@line{gitfile-info: No \jobname.gfi information-file given}
 | 
			
		||||
		\@latex@warning@no@line{gitfile-info:	All hooks and initialization run?}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
\providecommand{\gfiInitInc}[1]{%
 | 
			
		||||
	\IfFileExists{#1.gfi}{%
 | 
			
		||||
		\input{#1.gfi}
 | 
			
		||||
	}{%
 | 
			
		||||
		\@latex@warning@no@line{gitfile-info: No #1.gfi information-file given}
 | 
			
		||||
		\@latex@warning@no@line{gitfile-info:	All hooks and initialization run?}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\AtBeginDocument{%
 | 
			
		||||
	\gfiInitJob
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
\providecommand{\gfiInput}[1]{%
 | 
			
		||||
	\gfiInitInc{#1}
 | 
			
		||||
	\input{#1}
 | 
			
		||||
	\gfiInitInc{\currfilebase}
 | 
			
		||||
}
 | 
			
		||||
\providecommand{\gfiInclude}[1]{%
 | 
			
		||||
	\gfiInitInc{#1}
 | 
			
		||||
	\include{#1}
 | 
			
		||||
	\gfiInitInc{\currfilebase}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								post-commit
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										42
									
								
								post-commit
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
# -*- mode:python -*-
 | 
			
		||||
import sys
 | 
			
		||||
import os
 | 
			
		||||
import time
 | 
			
		||||
import codecs
 | 
			
		||||
from git import Repo
 | 
			
		||||
import locale
 | 
			
		||||
locale.setlocale(locale.LC_ALL, 'de_DE')
 | 
			
		||||
 | 
			
		||||
pathrepo = os.getcwd()
 | 
			
		||||
repo = Repo(pathrepo)
 | 
			
		||||
assert not repo.bare
 | 
			
		||||
git = repo.git
 | 
			
		||||
headcommit = repo.head.commit
 | 
			
		||||
index = repo.index
 | 
			
		||||
 | 
			
		||||
commFiles = git.diff_tree('-r', 'HEAD', no_commit_id=True, name_only=True).split("\n")
 | 
			
		||||
date = [time.strftime("%d. %B %Y %H:%M", time.gmtime(headcommit.authored_date)),
 | 
			
		||||
        time.strftime("%d", time.gmtime(headcommit.authored_date)),
 | 
			
		||||
        time.strftime("%m", time.gmtime(headcommit.authored_date)),
 | 
			
		||||
        time.strftime("%Y", time.gmtime(headcommit.authored_date)),
 | 
			
		||||
        time.strftime("%H", time.gmtime(headcommit.authored_date)),
 | 
			
		||||
        time.strftime("%M", time.gmtime(headcommit.authored_date))]
 | 
			
		||||
author = [headcommit.author.name, headcommit.author.email]
 | 
			
		||||
commit = [headcommit.hexsha, headcommit.hexsha[:6]]
 | 
			
		||||
#commit = git.log('-1', format='%h').rstrip()
 | 
			
		||||
 | 
			
		||||
#cmt = subprocess.check_output('git log -1 --format="%s" ', shell=True).decode("utf-8").rstrip()
 | 
			
		||||
 | 
			
		||||
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] + "}")
 | 
			
		||||
        #print("\\gfiSet{" + date + "}{" + author + "}{" + commit + "}")
 | 
			
		||||
        f.close
 | 
			
		||||
							
								
								
									
										44
									
								
								post-merge
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								post-merge
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
# -*- mode:python -*-
 | 
			
		||||
import os
 | 
			
		||||
import time
 | 
			
		||||
import codecs
 | 
			
		||||
from git import Repo
 | 
			
		||||
import locale
 | 
			
		||||
locale.setlocale(locale.LC_ALL, 'de_DE')
 | 
			
		||||
 | 
			
		||||
pathrepo = os.getcwd()
 | 
			
		||||
repo = Repo(pathrepo)
 | 
			
		||||
assert not repo.bare
 | 
			
		||||
git = repo.git
 | 
			
		||||
headcommit = repo.head.commit
 | 
			
		||||
index = repo.index
 | 
			
		||||
 | 
			
		||||
commFiles = git.diff_tree('-r', 'ORIG_HEAD', 'HEAD', no_commit_id=True, name_only=True).split("\n")
 | 
			
		||||
#commit = git.log('-1', format='%h').rstrip()
 | 
			
		||||
 | 
			
		||||
#cmt = subprocess.check_output('git log -1 --format="%s" ', shell=True).decode("utf-8").rstrip()
 | 
			
		||||
 | 
			
		||||
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.gmtime(rawdate)),
 | 
			
		||||
                time.strftime("%d", time.gmtime(rawdate)),
 | 
			
		||||
                time.strftime("%m", time.gmtime(rawdate)),
 | 
			
		||||
                time.strftime("%Y", time.gmtime(rawdate)),
 | 
			
		||||
                time.strftime("%H", time.gmtime(rawdate)),
 | 
			
		||||
                time.strftime("%M", time.gmtime(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] + "}")
 | 
			
		||||
        #print("\\gfiSet{" + date + "}{" + author + "}{" + commit + "}")
 | 
			
		||||
        f.close
 | 
			
		||||
		Reference in New Issue
	
	Block a user