#!/bin/sh

if [ $# -ne 0 ]; then
    DOCDIRS="$*"
elif [ -f wrapper.tex ]; then
    DOCDIRS="."
elif [ -f docdirs ]; then
    DOCDIRS=`cat docdirs`
else
    DOCDIRS=""
fi


oritex="..:$TEXINPUTS"

for DIR in ${DOCDIRS}; do
   cd $DIR
   echo "test_tex:  Now in directory $DIR ..."
   if [ -f docdirs ]; then
      PASSED=""
      FAILED=""
      DOC_SUBDIRS=`cat docdirs`
      for SUBDIR in $DOC_SUBDIRS; do
       echo
       echo "test_tex $SUBDIR"
       echo
       TEXINPUTS=${SUBDIR}:${SUBDIR}_ref:../../examples:../../demo:${oritex}
       export TEXINPUTS
       if [ $DIR = "basic" -o $DIR = "support" ]; then
          echo "\includeonly{$SUBDIR/main,${SUBDIR}_ref/main}" >ionly
       else
          echo "\includeonly{$SUBDIR/main}" >ionly
       fi
   
       rm -f wrapper.aux
       rm -f wrapper.toc
       rm -f wrapper.ind
       rm -f wrapper.ind.unfixed
       rm -f wrapper.ilg
       rm -f wrapper.idx
       if [ -f $SUBDIR/main.tex ]
       then
          if latex wrapper
          then
             makeindex wrapper
             index_fix wrapper.ind
             if  latex wrapper 
             then
                PASSED="$PASSED $SUBDIR"
	        mv wrapper.dvi $SUBDIR/main.dvi
             else
                FAILED="$FAILED $SUBDIR"
                echo
                echo "LaTeX of $SUBDIR with index FAILED"
             fi
	     mv wrapper.log $SUBDIR/main.log
	     mv wrapper.idx $SUBDIR/main.idx
	     mv wrapper.ilg $SUBDIR/main.ilg
	     mv wrapper.ind $SUBDIR/main.ind
             rm $SUBDIR/main.aux
          else
             FAILED="$FAILED $SUBDIR"
             mv wrapper.log $SUBDIR/main.log
             echo
             echo "LaTeX of $SUBDIR FAILED"
             rm $SUBDIR/main.aux
          fi
       else
          FAILED="$FAILED $SUBDIR"
          echo
          echo "LaTeX of $SUBDIR FAILED: missing main.tex file!"
          echo "LaTeX of $SUBDIR FAILED: missing main.tex file!" > $SUBDIR/main.log
       fi
      done

     echo $PASSED > docdirs_passed_tex
     echo $FAILED > docdirs_failed_tex

   else
      latex wrapper
   fi
   echo "test_tex:  ... leaving directory $DIR"
   cd ..
done


syntax highlighted by Code2HTML, v. 0.9.1