#!/bin/sh
### ====================================================================
### @UNIX-shell-file{
### author = "Ulrik Vieth",
### email = "
[email protected]",
### filename = "mpt",
### version = "0.05",
### date = "29 January 1996",
### time = "02:28:37 MET",
### codetable = "ISO/ASCII",
### checksum = "21388 85 335 2331",
### keywords = "MFT, MetaPost, pretty-printing",
### supported = "yes",
### abstract = "",
### docstring = "",
### }
### ====================================================================
#
# Process METAPOST sources with MFT, converting them to a form
# suitable for MFT processing using a sed script if necessary.
#
# This file assumes that some standard Unix utilities like
# echo, grep, sed, and basename are available.
#
# The source file (file.mp) is assumed to exist and to be found
# in the current directory. The target file (file.mf) will be
# overwritten if it already exists. It is necessary to use the
# file extension `.mf' for the target file, since newer versions
# of MFT might produce unpredictable file names otherwise.
#
# Usage:
#
# mpt file[.mp]
#
# Code:
#
if [ $# != 1 ]; then
echo "Usage: mpt file[.mp]"; exit 1
fi
# Standard Unix utilities:
GREP=grep
SED=sed
# Standard TeXware/METAFONTware utiltities:
MFT=mft
# The SED script for preprocessing:
MP2SED=mp2mft.sed
#MP2SED=$TEXMF/mft/mp2mft.sed
# The MFT style file (without .mft):
MP2MFT=mp2
# The source and target files:
#
MPFILE=`basename $1 .mp`.mp
MFFILE=`basename $1 .mp`.mf
if [ ! -f "$MPFILE" -o ! -r "$MPFILE" ]; then
echo "mpt: Can't read from source file \"$MPFILE\"!"; exit 1
fi
if [ -f "$MFFILE" -a ! -w "$MFFILE" ]; then
echo "mpt: Can't write to target file \"$MFFILE\"!"; exit 1
fi
# Check if preprocessing $MPFILE with sed is needed:
#
$GREP "\(btex\|etex\|verbatimtex\)" $MPFILE > /dev/null
case $? in
0)
# there were matches, so convert it
#
$SED -f $MP2SED < $MPFILE > $MFFILE
$MFT $MFFILE -s $MP2MFT
exit 0
;;
1)
# there were no matches, so copy it
#
$SED $MPFILE $MFFILE
$MFT $MPFILE -s $MP2MFT
exit 0
;;
esac