#!/bin/sh
#
# Script to run pmxa, pmxb 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
#
if [ "$1" != "" ]
then
  FILE=$1
  if [ ! -f $FILE ]
  then
    FILE=$1".pmx"
  fi
  if [ -f $FILE ]
  then
    BASE=`basename $FILE .pmx`
    TEX=$BASE".tex"
    #
    # Cleaning up in case of crash
    #
    if [ -f $TEX ]
    then
      echo "Deleting $TEX"
      rm -f $TEX
    fi
    LOG=$BASE".log"
    if [ -f $LOG ]
    then
      echo "Deleting $LOG"
      rm -f $LOG
    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
    if [ -f pmxtex.dat ]
    then
      echo "Deleting pmxtex.dat"
      rm -f pmxtex.dat
    fi
    if [ -f pmxtex.fig ]
    then
      echo "Deleting pmxtex.fig"
      rm -f pmxtex.fig
    fi
    #
    # Start of pmx - pmxa
    #
    echo "=== RUNNING PMXA (1st pass) ==="
    (echo $BASE | pmxa) || exit 1
    #
    # Check if successful
    #
    if [ ! -f pmxtex.dat ]
    then
      exit 1
    fi
    if [ ! -f pmxtex.fig ]
    then
      exit 1
    fi
    #
    # pmxb
    #
    echo "=== RUNNING PMXB (2nd pass) ==="
    pmxb || exit 1
    #
    # check for success
    #
    if [ ! -f $TEX ] 
    then
      exit 1
    fi
    #
    # Cleaning up after pmx
    #
    echo "Cleaning up (pmxtex.dat pmxtex.fig)"
    rm -f pmxtex.dat
    rm -f pmxtex.fig
    #
    # 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
    #
    if [ -f $MX1 ]
    then
      echo "Deleting $MX1"
      rm $MX1
    fi
    if [ -f $MX2 ]
    then
      echo "Deleting $MX2"
      rm $MX2
    fi
    echo "Done."
  else
    echo "Can't find either "$1" or "$FILE
  fi
else
  echo "PMX-1.3.7: Convert .pmx input file into .dvi"
  echo "Usage:  pmx <pmx_input_file>"
fi


