#!/bin/sh

PROLOG='@prolog@'
MLPATH='@mlpath@'

BASENAME='@basename@'
BIBTEX='@bibtex@'
CP='@cp@'
LATEX='@latex@'
PDFLATEX='@pdflatex@'
DVIPS='@dvips@'
PS2PDF='@ps2pdf@'
RM='@rm@'
SED='@sed@'

LTX='@ltx@'
LTXPDF='@ltxpdf@'
PSPDF='@pspdf@'

prg=`$BASENAME $0`

if $LTX
then
  :
else
  echo "$prg: MUltlog was not installed with TeX support"
  exit 1
fi

if $LTXPDF
then
  :
elif $PSPDF
then
  :
else
  echo "$prg: MUltlog was not installed with TDF support"
  exit 1
fi

if [ ! "$1" ]
then
  echo "$prg: Argument (file with specification of logic) missing"
  exit 1
fi

file=`echo $1 | $SED 's/\.lgc$//'`
shift

if [ "$*" ]
then
  echo "$prg: too many arguments ($*)"
  exit
fi

if [ ! -f "$file.lgc" ]
then
  echo "$prg: Specification $file.lgc does not exist."
  exit 1
fi

logfile=$file.mlg

for ext in tex sty aux log bbl blg dvi ps pdf mlg ilc
do
   if [ -f $file.$ext ]
   then
      $RM -f $file.$ext
   fi
done

if [ ! -f $file.cfg ]
then
   $CP $MLPATH/ml.cfg $file.cfg
fi

$PROLOG 2>>$logfile <<EndPROLOG
['$MLPATH/ml'].
lgc2tex('$file.lgc','$file.sty','$file.cfg').
EndPROLOG

if [ -f "$file.sty" ]
then
  $CP $MLPATH/ml.tex $file.tex
  $CP $MLPATH/ml.sty .
  $CP $MLPATH/ml.bib .
  $CP $MLPATH/proof.sty .
  echo ""
  if $LTXPDF
  then
    echo "PDFLaTeXing $file ..."
    $PDFLATEX  $file >> $logfile </dev/null
    echo "BiBTeXing $file ..."
    $BIBTEX $file >> $logfile </dev/null
    echo "PDFLaTeXing $file ..."
    $PDFLATEX  $file >> $logfile </dev/null
    echo "PDFLaTeXing $file ..."
    $PDFLATEX  $file >> $logfile </dev/null
  else
    echo "LaTeXing $file ..."
    $LATEX  $file >> $logfile </dev/null
    echo "BiBTeXing $file ..."
    $BIBTEX $file >> $logfile </dev/null
    echo "LaTeXing $file ..."
    $LATEX  $file >> $logfile </dev/null
    echo "LaTeXing $file ..."
    $LATEX  $file >> $logfile </dev/null
    echo "Converting to Postscript ..."
    $DVIPS -Ppdf -o $file.ps $file.dvi
    echo "Converting to PDF ..."
    $PS2PDF $file.ps $file.pdf
  fi
  if [ -f "$file.pdf" ]
  then
    echo "Cleaning up ..."
    delfiles="$logfile"
    delfiles="$delfiles $file.aux $file.log $file.bbl $file.blg $file.dvi $file.ps"
    delfiles="$delfiles $file.sty $file.tex ml.sty ml.bib proof.sty"
    for f in $delfiles
    do
      if [ -f $f ]
      then
        $RM -f $f
      fi
    done
     echo
     echo "Your paper '$file.pdf' is now ready for viewing."
  else
     echo "$prg: Some error happened. See $logfile for more information."
     exit 1
  fi
else
  echo "$prg: Some error happened. See $logfile for more information."
  exit 1
fi
