| 
4426
 | 
     1  | 
#!/bin/bash
  | 
| 
 | 
     2  | 
#
  | 
| 
 | 
     3  | 
# $Id$
  | 
| 
 | 
     4  | 
#
  | 
| 
 | 
     5  | 
# MLWorks startup script (for 1.0r2 or later).
  | 
| 
 | 
     6  | 
#
  | 
| 
 | 
     7  | 
# Global vars: INFILE OUTFILE MLTEXT TERMINATE NOWRITE ISABELLE_TMP,
  | 
| 
 | 
     8  | 
# and from settings
  | 
| 
 | 
     9  | 
  | 
| 
 | 
    10  | 
  | 
| 
 | 
    11  | 
## diagnostics
  | 
| 
 | 
    12  | 
  | 
| 
 | 
    13  | 
function fail_out()
  | 
| 
 | 
    14  | 
{
 | 
| 
 | 
    15  | 
  echo "Unable to create output heap file: \"$OUTFILE\"" >&2
  | 
| 
 | 
    16  | 
  exit 2
  | 
| 
 | 
    17  | 
}
  | 
| 
 | 
    18  | 
  | 
| 
 | 
    19  | 
  | 
| 
 | 
    20  | 
## prepare databases
  | 
| 
 | 
    21  | 
  | 
| 
 | 
    22  | 
if [ -z "$INFILE" ]; then
  | 
| 
4505
 | 
    23  | 
  EXIT="fun exit 0 = (OS.Process.exit OS.Process.success): unit | exit _ = OS.Process.exit OS.Process.failure;"
  | 
| 
4426
 | 
    24  | 
  MLWORKS="mlworks-basis -tty"
  | 
| 
 | 
    25  | 
else
  | 
| 
4505
 | 
    26  | 
  EXIT=""
  | 
| 
4426
 | 
    27  | 
  MLWORKS="mlimage -load $INFILE -tty"
  | 
| 
 | 
    28  | 
fi
  | 
| 
 | 
    29  | 
  | 
| 
4505
 | 
    30  | 
if [ -z "$OUTFILE" ]; then
  | 
| 
 | 
    31  | 
  COMMIT='fun commit () = (TextIO.output (TextIO.stdErr, "Error - Database is not opened for writing.\n"); false);'
  | 
| 
 | 
    32  | 
else
  | 
| 
 | 
    33  | 
  COMMIT="fun commit () = (Shell.saveImage (\"$OUTFILE\", false); true);"
  | 
| 
 | 
    34  | 
  [ -f "$OUTFILE" ] && { chmod +w "$OUTFILE" || fail_out; }
 | 
| 
 | 
    35  | 
fi
  | 
| 
4426
 | 
    36  | 
  | 
| 
 | 
    37  | 
  | 
| 
 | 
    38  | 
## run it!
  | 
| 
 | 
    39  | 
  | 
| 
4505
 | 
    40  | 
MLTEXT="$EXIT $COMMIT $MLTEXT"
  | 
| 
 | 
    41  | 
MLEXIT="commit();"
  | 
| 
4426
 | 
    42  | 
  | 
| 
4505
 | 
    43  | 
if [ -z "$TERMINATE" ]; then
  | 
| 
 | 
    44  | 
  FEEDER_OPTS="-s"
  | 
| 
4426
 | 
    45  | 
else
  | 
| 
4505
 | 
    46  | 
  FEEDER_OPTS="-q"
  | 
| 
4426
 | 
    47  | 
fi
  | 
| 
 | 
    48  | 
  | 
| 
4505
 | 
    49  | 
$ISABELLE_HOME/lib/scripts/feeder -p -h "$MLTEXT" -t "$MLEXIT" $FEEDER_OPTS | \
  | 
| 
 | 
    50  | 
  { read FPID; $ML_HOME/$MLWORKS $ML_OPTIONS 2>&1; RC=$?; kill -HUP $FPID; exit $RC; }
 | 
| 
 | 
    51  | 
RC=$?
  | 
| 
 | 
    52  | 
  | 
| 
 | 
    53  | 
[ -n "$OUTFILE" -a -f "$OUTFILE" -a -n "$NOWRITE" ] && chmod -w "$OUTFILE"
  | 
| 
4426
 | 
    54  | 
  | 
| 
 | 
    55  | 
exit $RC
  |