#!/bin/bash
#
# $Id: runltx,v 1.13 2007/01/15 22:39:40 frank Exp $
#
#set -x

MPFILE="FOOBAR"
PARAM=
## Is string documentclass present in ltx file?
grep documentclass $1 >& /dev/null
if test $? = 1
then
# no "documentclass" present --> not LaTeX --> exit
echo "$1 not runnable LaTeX"
exit 0
fi

## If eps file already exists --> do nothing

F=`basename $1 .ltx`
if test -r $F.eps
then
 echo $F.eps already made
 exit
fi

## No EPS file yet --> run LaTeX

LATEX=latex
export TEXINPUTS=inputs:pstricks:
export HOMETEXMF=../../texmf:
export TEXMFHOME=../../texmf:

   echo "*************************** latex $F.ltx FIRST RUN "

$LATEX $F.ltx
if test $? -gt 0
 then
   echo "*************************** latex $F.ltx has ERRORS"
   exit 1
fi

# we need two runs for some PSTricks examples
   echo "*************************** latex $F.ltx SECOND RUN "

$LATEX $F.ltx
if test $? -gt 0
 then
   echo "*************************** latex $F.ltx has ERRORS"
   exit 1
fi
R=`grep ' Process ' $F.log` >& /dev/null
if test $? = 0
then
 # We have to deal with Metapost

 MFILE=`grep ' Process ' $F.log | tail -1 | awk '{print $3}'`

 MPFILE=`basename $MFILE .mp`
   echo "*************************** Metapost run $MFILE.mp "
 mpost $MPFILE
 if test $? -gt 0
 then
   echo "********************** Metapost $MPFILE.mp has ERRORS"
   exit 1
 fi
 $LATEX $F.ltx
 if test $? -gt 0
 then
   echo "*************************** latex $F.ltx has ERRORS"
   exit 1
 fi
else
 R=`grep "t forget to process" $F.log` >& /dev/null
 if test $? = 0
 then
   # We have to process Metafont of Metapost file for mfpic
   MFILE=`grep "t forget to process" $F.log | tail -1 | \
            awk '{print $6}' | sed 's/\!//'`
   R=`echo $MFILE | awk -F'.' '{print $2}'`
   if test "$R" = "mf"
   then
     MFFILE=`basename $MFILE .mf`
     mf "\\mode=ljfour; input $MFFILE"
     if test $? -gt 0
     then
       echo "********************** Metafont $MFFILE.mf has ERRORS"
       exit 1
     fi
   else # hopefully now "mp"
     MPFILE=`basename $MFILE .mp`
       echo "*************************** Metapost run $MFILE.mp "
     mpost $MPFILE
     if test $? -gt 0
     then
       echo "********************** Metapost $MPFILE.mp has ERRORS"
       exit 1
     fi
   fi
   $LATEX $F.ltx
   if test $? -gt 0
   then
     echo "*************************** latex $F.ltx has ERRORS"
     exit 1
   fi
   gftopk $MFFILE.600gf
   PARAM="-mode ljfour -D600"
 else
   R=`grep -i "musixtex" $F.log` >& /dev/null
   if test $? = 0
   then
     # We have to process musxitex file with musixflex
     PARAM="-mode ljfour -D600"
     musixflx $F
     $LATEX $F.ltx
     if test $? -gt 0
     then
       echo "*************************** latex $F.ltx has ERRORS"
       exit 1
     fi
   fi
 fi
fi
#export KPATHSEA_DEBUG=32
dvips  -j0 -E $PARAM $F -o $F.eps
#
# we can't do subesetting in chapter two as long a "w.eps" is used
#
#      ^ no font subsetting with 0

/cleaneps $F.eps

#
if test ! -s $F.eps
then
 rm $F.eps
 echo "*************************** eps file $F.eps has zero size"
 exit 1
fi
rm -f $F.dvi $F.aux $F.log $F.idx $MPFILE.* ftmp.mp  mfpicex.* $F.mx1 $F.mx2
rm -f LGCmatrix.dat