\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{\gfiGetHour}{#4}
	\renewcommand{\gfiGetMin}{#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}
		\vspace{1mm}
		\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}
		\vspace{1mm}
	\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{\currfiledir\currfilebase}
}
\providecommand{\gfiInclude}[1]{%
	\gfiInitInc{#1}
	\include{#1}
	\gfiInitInc{\currfiledir\currfilebase}
}
