summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/getfiledate/getfiledate.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/getfiledate/getfiledate.sty')
-rw-r--r--macros/latex/contrib/getfiledate/getfiledate.sty140
1 files changed, 140 insertions, 0 deletions
diff --git a/macros/latex/contrib/getfiledate/getfiledate.sty b/macros/latex/contrib/getfiledate/getfiledate.sty
new file mode 100644
index 0000000000..6e9faf2c3c
--- /dev/null
+++ b/macros/latex/contrib/getfiledate/getfiledate.sty
@@ -0,0 +1,140 @@
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+% This is file getfiledate.sty, version 1.2. %
+% %
+% This package fetches and formats the date of last modification of any %
+% existing file. It is based on an idea by Heiko Oberdiek (2009). %
+% %
+% 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 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. %
+% %
+% Copyright (c) 2009 Ahmed Musa (a.musa@rocketmail.com). %
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+
+\ProvidesPackage{getfiledate}
+ [2009/11/23 v1.2 Get date of last modification of existing file]
+\NeedsTeXFormat{LaTeX2e}[1996/12/01]
+\RequirePackage{etextools}[2009/09/30]
+\RequirePackage{ltxnew}
+\RequirePackage{xkeyval}
+\@ifpackageloaded{xcolor}{}{\RequirePackage[table]{xcolor}}
+\RequirePackage{amssymb}
+\RequirePackage{boxedminipage}
+\new\long\def\gfd@err#1#2{\PackageError{getfiledate}{#1}{#2}}
+\new\long\def\gfd@warn#1{\PackageWarningNoLine{getfiledate}{#1}}
+\new\let\gfd@alignright\relax
+\new\let\gfd@alignleft\relax
+\new\dimen\gfd@width@tmp\gfd@width@tmp=\z@\relax
+\providecommand*\space{ }
+\define@boolkeys[gfd]{getfiledate}[gfd@]{boxed,putprefix,notime}[true]
+\define@cmdkey[gfd]{getfiledate}[gfd@]{prefix}[%
+ The date of last modification of file]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{postfix}[was]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{file}[nofile.tex]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{width}[\hsize]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{marker}[]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{markercolor}[blue]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{filenamecolor}[blue]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{datecolor}[blue]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{inlinespace}[1em]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{head}[\baselineskip]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{foot}[\baselineskip]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{framesep}[3pt]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{framerule}[0.4pt]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{separator}[\textbullet]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{framecolor}[black]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{sepcolor}[black]{}
+\define@cmdkey[gfd]{getfiledate}[gfd@]{separator}[\textbullet]{}
+\define@choicekey*+[gfd]{getfiledate}{align}[\gfd@val\gfd@nr]%
+{center,right,left,justified}[justified]{%
+ \ifcase\gfd@nr\relax
+ \def\gfd@alignright{\hfil}%
+ \def\gfd@alignleft{\hfil}%
+ \or
+ \def\gfd@alignright{\hfill}%
+ \let\gfd@alignleft\relax
+ \or
+ \let\gfd@alignright\relax
+ \def\gfd@alignleft{\hfill}%
+ \or
+ \let\gfd@alignright\relax
+ \let\gfd@alignleft\relax
+ \fi
+}{%
+ \gfd@err{Inadmissible value '#1' for align}
+}
+\DeclareOptionX*{\gfd@warn{Unknown option '\CurrentOption' ignored}}
+\ExecuteOptionsX[gfd]<getfiledate>[notime,boxed]{%
+ align=center,head,foot,prefix,postfix,marker,markercolor,
+ filenamecolor,datecolor,inlinespace,file,width,framesep,
+ framerule,framecolor,sepcolor,separator,putprefix
+}
+\ProcessOptionsX*[gfd]<getfiledate>\relax
+\begingroup
+\ifcsdef{pdffilemoddate}{}{%
+ \AfterGroup{%
+ \gfd@err{Missing command \string\pdffilemoddate}{%
+ Use pdfTeX 1.30.0 or later version}
+ \endinput
+ }
+}
+\endgroup
+\newcommand\getfiledate[2][]{%
+ \setkeys[gfd]{getfiledate}{#1}%
+ \setkeys[gfd]{getfiledate}{file={#2}}%
+ \par\vspace{\gfd@head}%
+ \begingroup
+ \gfd@alignright
+ \mbox{%
+ \ifgfd@boxed
+ \let\gfd@marker\@empty
+ \def\gfd@inlinespace{\z@}%
+ \fboxsep=\gfd@framesep\relax
+ \fboxrule=\gfd@framerule\relax
+ \gfd@width@tmp=\dimexpr\gfd@width+2\fboxsep+2\fboxrule\relax
+ \color{\gfd@framecolor}%
+ \begin{boxedminipage}{\gfd@width@tmp}%
+ \normalcolor\gfd@tempa{\gfd@file}\relax
+ \end{boxedminipage}%
+ \else
+ \noindent\gfd@tempa{\gfd@file}%
+ \fi
+ }%
+ \gfd@alignleft
+ \endgroup
+ \par\vspace{\gfd@foot}%
+}
+\def\gfd@tempa#1{%
+ \IfFileExists{#1}{%
+ \expandafter\expandafter\expandafter
+ \gfd@tempb\expandafter\@gobbletwo\pdffilemoddate{#1}
+ D:00000000000000\@nil{#1}%
+ }{\gfd@err{File '#1' does not exist or wrong path}{%
+ Please enter correct filename and path}}
+}
+\newcommand\gfd@tempb[8]{\gfd@tempc{#1#2#3#4}{#5#6}{#7#8}}
+\newcommand\gfd@tempc[9]{\gfd@tempd{#1}{#2}{#3}{#4#5}{#6#7}{#8#9}}
+\def\gfd@tempd#1#2#3#4#5#6#7\@nil#8{%
+ \parbox{\gfd@width}{%
+ \removelastskip\noindent
+ \ifbool{gfd@putprefix}{\gfd@prefix@a{#8}}{}\ignorespaces
+ \textcolor{\gfd@datecolor}{#1-#2-#3}%
+ \ifbool{gfd@notime}{}{%
+ \space\textcolor{\gfd@sepcolor}{\gfd@separator}\space%
+ \textcolor{\gfd@datecolor}{#4:#5:#6}\ignorespaces
+ }.%
+ }%
+ \removelastskip
+}
+\def\gfd@prefix@a#1{%
+ \ifcsempty{gfd@marker}{}{\gfd@marker@a}%
+ \gfd@prefix\space\textcolor{\gfd@filenamecolor}{#1}\space\gfd@postfix\space%
+}
+\def\gfd@marker@a{%
+ \textcolor{\gfd@markercolor}{\gfd@marker}%
+ \leavevmode\hskip\gfd@inlinespace plus\z@ minus\z@\relax
+}
+
+\endinput