#!/bin/sh # file: ~/bin/TeXFiles.sh # all files -> without option # TeX class files -> option cls # TeX style files -> option sty # bibtex style files -> option bst # # with the help # of kpsewhich and creates a # bstFiles.lst, clsFiles.lst, styFiles.lst # without any parameter all files are created. # # Herbert Voss # # Updates from Jean-Marc Lasgouttes. # CLS_STYLEFILE=clsFiles.lst STY_STYLEFILE=styFiles.lst BST_STYLEFILE=bstFiles.lst version='$Id: TeXFiles.sh,v 0.2 2001-10-15' progname=`echo $0 | sed 's%.*/%%'` usage="Usage: TeXFiles.sh [-version | cls | sty | bst] Default is without any Parameters, so that all files will be created" types=$1 test -z "$types" && types="cls sty bst" # # MS-DOS and MS-Windows define $COMSPEC or $ComSpec and use ';' to separate # directories in path lists whereas Unixes uses ':'. # $SEP holds the right character to be used by the scripts. # #??????????????? # never used this one with windows and what happens with mac?? #??????????????? # if test -z "$COMSPEC" && test -z "$ComSpec"; then SEP=':'; else SEP=';'; fi # # A copy of some stuff from mktex.opt, so we can run in the presence of # terminally damaged ls-R files. # if test "x$1" = x--help || test "x$1" = x-help; then echo "$usage" exit 0 elif test "x$1" = x--version || test "x$1" = x-version; then echo "`basename $0` $version" kpsewhich --version exit 0 fi for type in $types ; do echo "Indexing files of type $type" case $type in cls) outfile=$CLS_STYLEFILE kpsetype=.tex;; sty) outfile=$STY_STYLEFILE kpsetype=.tex;; bst) outfile=$BST_STYLEFILE kpsetype=.bst;; *) echo "ERROR: unknown type $type" exit 1;; esac rm -f $outfile touch $outfile dirs=`kpsewhich --show-path=$kpsetype 2>/dev/null | tr "$SEP" " " | sed -e 's%/\{2,\}%/%g' -e 's%!!%%g'` for dir in $dirs ; do find $dir -follow -name "*.$type" >>$outfile 2>/dev/null done done #echo "list saved in $STYLEFILE" #echo `wc -l $CLS_STYLEFILE` # only for information # # this is the end my friends ... Jim Morrison and the Doors in "The End"