lib/scripts/run-mlworks
author wenzelm
Wed, 17 Dec 1997 18:13:43 +0100
changeset 4433 960868c0cbdd
parent 4426 824cac1bbcfd
child 4505 4a2c872b6513
permissions -rwxr-xr-x
tuned;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4426
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
     1
#!/bin/bash
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
     2
#
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
     3
# $Id$
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
     4
#
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
     5
# MLWorks startup script (for 1.0r2 or later).
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
     6
#
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
     7
# Global vars: INFILE OUTFILE MLTEXT TERMINATE NOWRITE ISABELLE_TMP,
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
     8
# and from settings
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
     9
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    10
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    11
## diagnostics
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    12
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    13
function fail_out()
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    14
{
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    15
  echo "Unable to create output heap file: \"$OUTFILE\"" >&2
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    16
  exit 2
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    17
}
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    18
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    19
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    20
## basic setup
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    21
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    22
EXIT="fun exit 0 : unit = (OS.Process.exit OS.Process.success): unit | exit _ = OS.Process.exit OS.Process.failure;"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    23
COMMIT="fun commit () = (Shell.saveImage (\"$OUTFILE\", false); true);"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    24
COMMIT_RO='fun commit () = (TextIO.output (TextIO.stdErr, "Error - Database is not opened for writing.\\n"); false);'
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    25
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    26
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    27
## prepare databases
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    28
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    29
if [ -z "$INFILE" ]; then
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    30
  MLWORKS="mlworks-basis -tty"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    31
else
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    32
  MLWORKS="mlimage -load $INFILE -tty"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    33
  EXIT=""
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    34
fi
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    35
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    36
[ -z "$OUTFILE" ] && COMMIT="$COMMIT_RO"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    37
[ -n "$OUTFILE" -a -f "$OUTFILE" ] && { chmod +w "$OUTFILE" || fail_out; }
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    38
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    39
MLTEXT="$EXIT $COMMIT $MLTEXT"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    40
MLEXIT="commit ();"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    41
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    42
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    43
## run it!
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    44
4433
wenzelm
parents: 4426
diff changeset
    45
START_MLWORKS="$ML_HOME/$MLWORKS 2>&1 $ML_OPTIONS"
4426
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    46
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    47
if [ -n "$TERMINATE" ]; then
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    48
  sh -c "echo '$MLTEXT' '$MLEXIT' | $START_MLWORKS"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    49
  RC=$?
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    50
elif [ -z "$MLTEXT" ]; then
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    51
  sh -c "{ $ISABELLE_HOME/lib/Tools/symbolinput; echo '$MLEXIT'; } | $START_MLWORKS"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    52
  RC=$?
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    53
else
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    54
  sh -c "{ echo '$MLTEXT'; $ISABELLE_HOME/lib/Tools/symbolinput; echo '$MLEXIT'; } | $START_MLWORKS"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    55
  RC=$?
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    56
fi
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    57
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    58
[ -n "$OUTFILE" -a -n "$NOWRITE" ] && chmod -w "$OUTFILE"
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    59
824cac1bbcfd MLWorks startup script (for 1.0r2 or later).
wenzelm
parents:
diff changeset
    60
exit $RC