#!/bin/sh
#
# Script to run pmxab and all 3 passes of MusiXTeX
# (courtesy of Jan Arne Fagertun, modified by Stefan Evert)
#
# Tue Feb 18 18:12:15 MET 1997 Jan.A.Fagertun@energy.sintef.no
# last modified:
# Mon Jul 21 13:05:46 MET DST 1997 evert@mathematik.uni-stuttgart.de
#
OPT=""
FILE=$1
if [ " $FILE" = " -o" ]
then
  OPT="-o"
  FILE=$2
fi
if [ "$FILE" != "" ]
then
  if [ ! -f $FILE ]
  then
    FILE=$FILE".pmx"
  fi
  BASE=`basename $FILE .pmx`
  if [ -f $FILE ]
  then
    TEX=$BASE".tex"
    #
    # Cleaning up in case of crash
    #
    if [ -f $TEX ]
    then
      echo "Deleting $TEX"
      rm -f $TEX
    fi
    MX1=$BASE".mx1"
    if [ -f $MX1 ]
    then
      echo "Deleting $MX1"
      rm -f $MX1
    fi
    MX2=$BASE".mx2"
    if [ -f $MX2 ]
    then
      echo "Deleting $MX2"
      rm -f $MX2
    fi
    LOG=$BASE".log"
    if [ -f $LOG ]
    then
      echo "Deleting $LOG"
      rm -f $LOG
    fi
    PML=$BASE".pml"
    if [ -f $PML ]
    then
      echo "Deleting $PML"
      rm -f $PML
    fi
    if [ -f pmxaerr.dat ]
    then
      echo "Deleting pmxaerr.dat"
      rm -f pmxaerr.dat
    fi
    #
    # Start of pmx - pmxab
    #
    echo "=== RUNNING PMX  ==="
    pmxab $OPT $BASE || exit 1
    #
    # Check if successful
    #
    if [ ! -f $TEX ] 
    then
      exit 1
    fi
    #
    # Cleaning up after pmx
    #
    echo "Cleaning up ..."
    if [ -f pmxaerr.dat ]
    then
      rm -f pmxaerr.dat
    fi
    #
    # Start MusiXTeX - tex
    #
    echo "=== RUNNING MUSIXTEX: 1st pass (tex) ==="
    tex $BASE || exit 1
    if [ ! -f $MX1 ]
    then
      exit 1
    fi
    #
    # Discard .dvi created by first pass
    #
    DVI=$BASE".dvi"
    if [ -f $DVI ]
    then
      echo "Discarding $DVI"
      rm -f $DVI
    fi
    #
    # musixflx
    #
    echo "=== RUNNING MUSIXTEX: 2nd pass (musixflx) ==="
    musixflx $BASE || exit 1
    if [ ! -f $MX2 ]
    then
      exit 1
    fi
    #
    # tex again
    #
    echo "=== RUNNING MUSIXTEX: 3rd pass (tex) ==="
    tex $BASE || exit 1
    #
    # Check if we're successful
    #
    if [ ! -f $DVI ]
    then
      echo "*** PMX failed"
      exit 1
    fi
    #
    # Cleaning up after MusiXTeX
    #
    echo "Cleaning up ..."
    if [ -f $MX1 ]
    then
      rm $MX1
    fi
    if [ -f $MX2 ]
    then
      rm $MX2
    fi
    echo "Done."
  else
    echo "Can't find either "$BASE" or "$FILE
  fi
else
  echo "pmx: Convert .pmx input file into .dvi"
  echo "Usage:  pmx [ -o ] <pmx_input_file>"
fi
