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 | |
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')
3 files changed, 156 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/latexfileversion/ChangeLog b/Master/texmf-dist/doc/support/latexfileversion/ChangeLog new file mode 100644 index 00000000000..c99b4da24a3 --- /dev/null +++ b/Master/texmf-dist/doc/support/latexfileversion/ChangeLog @@ -0,0 +1,9 @@ +2011-12-31 v0.3 Harald Harders + - Rename from getfileversion to latexfileversion + - Add support for arbitrary tex input file types + +2011-12-30 v0.2 Harald Harders + - Avoid special characters as guillemets + +2005-04-30 v0.1 Harald Harders + - Initial version. diff --git a/Master/texmf-dist/doc/support/latexfileversion/README b/Master/texmf-dist/doc/support/latexfileversion/README new file mode 100644 index 00000000000..82c7ef6e925 --- /dev/null +++ b/Master/texmf-dist/doc/support/latexfileversion/README @@ -0,0 +1,29 @@ + +This simple shell script prints the version and date of a LaTeX input +files (e.g., class or style files). + +Syntax: +latexfileversion <file> + +This programme handles style files (extension .sty), +class files (extension .cls), and other tex input files. +The file extension must be given. + + +Copyright 2005, 2011 Harald Harders, h.harders@tu-bs.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. + +Before version 0.3, this tool used to be named getfileversion. + +Harald Harders +harald.harders@gmx.de +2011-12-31 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 |