# mpdvi code -- read info and install program
# check for exactly one parameter
case $# in
1) ;;
*) echo "usage: $0 [options] dir" 1>&2; exit 1;;
esac
# set up some strings
dir=$MPDSRC/vsuite/$1
script=$dir/Script
date=`date`
clean="rm -rf MPDinter core *.out"
# make the subdir; error if it already has a Script file
# (no error if already exists; earlier mpdvi may have failed partway)
if [ -d $dir ]
then if [ -r $script ]
then echo "$dir already exists" 1>&2; exit 1;
fi
else if mkdir $dir
then :
else echo "$dir: can't mkdir" 1>&2; exit 1;
fi
fi
# read list of .mpd files and check accessibility
$NECHO ".mpd files? "
read mpdfiles
if [ -z "$mpdfiles" ]
then echo "no source files!"; exit 1;
fi
for i in $mpdfiles
do
if [ ! -r $i ]
then echo "$i: can't access"; exit 1;
fi
done
# read list of data files and check accessibility
$NECHO "input files? "
read ifiles
for i in $ifiles
do
if [ ! -r $i ]
then echo "$i: can't access"; exit 1;
fi
done
# at this point we're committed to filling the subdirectory.
set -x # echo our commands from here on
echo "# $USER $date" >$script # init Script with user name and date
cp $mpdfiles $ifiles $dir # copy source and data files
cd $dir # move to new directory
if $mpd $ec $mpdfiles >Compiler.std 2>&1 # compile
then
echo "0 mpd $mpdfiles" >>$script # record command
if [ -z "$ifiles" ]
then
a.out </dev/null >No_input.std 2>&1 # run </dev/null
echo "$? run" >>$script # record command
else for i in $ifiles
do
a.out <$i >$i.std 2>&1 # run <datafile
echo "$? run $i" >>$script # record command
done
fi
else
echo "$? mpd -c $mpdfiles" >>$script # record failing compile
echo "warning: compilation failed"
fi
$clean # clean up the subdirectory
echo "0 $clean" >>$script # record a cleanup command
find C*.std -size 0 -exec rm {} \; # remove compiler output if null
exit 0
syntax highlighted by Code2HTML, v. 0.9.1