% 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}{}{} }{} }{}