summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/gitinfo/gitinfo.sty
blob: 1be51970c07c7ad6c4a7b123022d0fde704dbac8 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
% gitinfo.sty   
% Copyright 2011 Brent Longborough
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
% The Current Maintainer of this work is Brent Longborough.
%
% This work consists of these files: 
%     gitinfo.sty, gitsetinfo.sty, gitinfo.tex, gitinfo.pdf,
%     post-git-sample.txt, and gitHeadInfo.gin
% -----------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{gitinfo}[2011/08/10 v1.00 git revision information]
\RequirePackage{etoolbox}
\RequirePackage{kvoptions}
\SetupKeyvalOptions{%
	family=gitInfo,
	prefix=gitInf@
	}
\DeclareBoolOption{grumpy}
\DeclareBoolOption{pcount}
\DeclareBoolOption{footinfo}
\DeclareStringOption[(None)]{missing}
\ProcessKeyvalOptions*
\newcommand{\gitAbbrevHash}{\gitInf@missing}
\newcommand{\gitHash}{\gitInf@missing}
\newcommand{\gitAuthorName}{\gitInf@missing}
\newcommand{\gitAuthorEmail}{\gitInf@missing}
\newcommand{\gitAuthorDate}{\gitInf@missing}
\newcommand{\gitAuthorIsoDate}{\gitInf@missing}
\newcommand{\gitAuthorUnixDate}{\gitInf@missing}
\newcommand{\gitCommitterName}{\gitInf@missing}
\newcommand{\gitCommitterEmail}{\gitInf@missing}
\newcommand{\gitCommitterDate}{\gitInf@missing}
\newcommand{\gitCommitterIsoDate}{\gitInf@missing}
\newcommand{\gitCommitterUnixDate}{\gitInf@missing}
\newcommand{\gitReferences}{\gitInf@missing}
\newcommand{\gitVtag}{}
\newcommand{\gitVtags}{}
\newcommand{\gitVtagn}{\space\gitInf@missing}
\InputIfFileExists{./gitHeadInfo.gin}{}{%
	\ifbool{gitInf@grumpy}{%
		\PackageError{gitinfo}{I can't find the file `gitHeadInfo.gin`.\MessageBreak
		Please check the manual (gitinfo.pdf) \MessageBreak 
		if you need more details.}{}
	}{%
		\PackageWarning{gitInfo}{I can't find the file `gitHeadInfo.gin`.\MessageBreak
		All git metadata has been set to ``\gitInf@missing''.}
	}
}
\@ifclassloaded{memoir}{%
	\ifbool{gitInf@footinfo}{%
		\ifbool{gitInf@pcount}{
			\newcommand{\@gitPage}{\thepage/\thelastpage}
			\addtodef{\frontmatter}{\renewcommand{\@gitPage}{\thepage}}{}
			\addtodef{\mainmatter}{}{\renewcommand{\@gitPage}{\thepage/\thelastpage}}
		}{%
			\newcommand{\@gitPage}{\thepage}
		}
		\newcommand{\@gitFootRev}{Revision\gitVtags: \gitAbbrevHash{} (\gitAuthorDate)}
		\newcommand{\@gitrFootRev}{%
			\tiny\textsf{\raggedleft \@gitFootRev}%
			}
		\newcommand{\@gitlFootRev}{%
			\tiny\textsf{\@gitFootRev}%
			}
		\makeevenfoot{plain}{\@gitPage}{}{\@gitrFootRev}
		\makeoddfoot{plain}{\@gitlFootRev}{}{\@gitPage}
		\makeevenfoot{ruled}{\@gitPage}{}{\@gitrFootRev}
		\makeoddfoot{ruled}{\@gitlFootRev}{}{\@gitPage}
		\makeevenfoot{headings}{\@gitPage}{}{\@gitrFootRev}
		\makeoddfoot{headings}{\@gitlFootRev}{}{\@gitPage}
		\makeevenhead{headings}{}{}{\slshape\leftmark}
		\makeoddhead{headings}{\slshape\rightmark}{}{}
	}{}
}{}