diff options
author | Karl Berry <karl@freefriends.org> | 2012-01-03 00:44:49 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-01-03 00:44:49 +0000 |
commit | 8b2c7dfa75b8296bcb312b594a4c597d7b6c3e7f (patch) | |
tree | da683cdc308d66ad2d95a1af025491c76eab253c /Master/texmf-dist/scripts | |
parent | 6fe376ced37975f0da997a2e955695dc8165cdc7 (diff) |
new (renamed) script latexfileversion 0.3 (2jan12)
git-svn-id: svn://tug.org/texlive/trunk@25012 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts')
-rwxr-xr-x | Master/texmf-dist/scripts/latexfileversion/latexfileversion | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/latexfileversion/latexfileversion b/Master/texmf-dist/scripts/latexfileversion/latexfileversion new file mode 100755 index 00000000000..bae05f520aa --- /dev/null +++ b/Master/texmf-dist/scripts/latexfileversion/latexfileversion @@ -0,0 +1,118 @@ +#!/usr/bin/env bash +## latexfileversion +## +## This simple shell script prints the version and date of a LaTeX class or +## style file. +## +## Version 0.3, 2011-12-31, Add support for arbitrary tex input file types +## Rename from getfileversion to latexfileversion +## Version 0.2, 2011-12-30, Avoid special characters as guillemots +## Version 0.1, 2005-04-30, Initial version +## +## Copyright 2005, 2011 Harald Harders, harald.harders@gmx.de +## +## This programme may be distributed and/or modified under the +## conditions of the LaTeX Project Public License, either version 1.2 +## 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.2 or later is part of all distributions of LaTeX +## version 1999/12/01 or later. +## +## This programme consists of the files +## latexfileversion, README, and ChangeLog. +VERSION=0.3 + +# help screen +if [ -z "$1" ] +then + echo 'latexfileversion v'$VERSION >&2 + echo '' >&2 + echo 'This programme prints the version and date of a LaTeX class or' >&2 + echo 'style file.' >&2 + echo '' >&2 + echo 'Syntax:' >&2 + echo 'latexfileversion <file>' >&2 + echo '' >&2 + echo 'This programme handles style files (extension .sty),' >&2 + echo 'class files (extension .cls), and other tex input files.' >&2 + echo 'The file extension must be given.' >&2 + exit 1 +fi + +# make temporary directory +TMPDIR=`mktemp -d /tmp/latexfileversion.XXXXXX` || exit 1 +cd $TMPDIR + +# extract basenames for extensions .cls and .sty +FILE=$1 +STYLE=${1%%.sty} +CLASS=${1%%.cls} + +# handle .cls files and .sty files seperately +if [ "$CLASS.cls" == "$FILE" ] +then + echo -n "Looking for class file '$CLASS.cls': " + # generate temporary LaTeX file +( +cat << EOM +\documentclass{$CLASS} +\nofiles +\makeatletter +\def\GetFileInfo#1{% + \def\filename{#1}% + \def\@tempb##1 ##2 ##3\relax##4\relax{% + \def\filedate{##1}% + \def\fileversion{##2}% + \def\fileinfo{##3}}% + \edef\@tempa{\csname ver@#1\endcsname}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax} +\makeatother +\GetFileInfo{$CLASS.cls} +\typeout{VERSION \fileversion, \filedate} +\begin{document} +\end{document} +EOM +) > latexfileversion.tex +else + if [ "$STYLE.sty" == "$FILE" ] + then + echo -n "Looking for style file '$STYLE.sty': " + # generate temporary LaTeX file +( +cat << EOM +\documentclass{ltxdoc} +\nofiles +\usepackage{$STYLE} +\GetFileInfo{$STYLE.sty} +\typeout{VERSION \fileversion, \filedate} +\begin{document} +\end{document} +EOM +) > latexfileversion.tex + else + echo -n "Looking for file '$FILE': " + # generate temporary LaTeX file +( +cat << EOM +\documentclass{ltxdoc} +\nofiles +\input{$FILE} +\GetFileInfo{$FILE} +\typeout{VERSION \fileversion, \filedate} +\begin{document} +\end{document} +EOM +) > latexfileversion.tex + fi +fi + +# run temporary LaTeX file which writes »VERSION ...« into the logfile +pdflatex -interaction=nonstopmode latexfileversion.tex > /dev/null +# extract the line containing »VERSION« and remove »VERSION « +grep -e '^VERSION' latexfileversion.log | sed 's/VERSION //' + +# delete temporary directory +rm -rf $TMPDIR + +#EOF |