5 # Basic Isabelle startup script.
10 ISABELLE_HOME=$(dirname $(dirname $0))
11 . $ISABELLE_HOME/lib/scripts/getsettings
13 #get bash-style platform info
16 PLATFORM=$(bash -noprofile -c 'echo $HOSTTYPE-$OSTYPE')
26 echo "Usage: $PRG [OPTIONS] [INPUT] [OUTPUT]"
29 echo " -c force copying of heap file"
30 echo " -e MLTEXT pass MLTEXT to ML session"
31 #FIXME echo " -o OPTIONS pass options to ML system"
32 echo " -q non-interactive session"
33 echo " -r open heap file read-only"
34 echo " -u pass 'use\"ROOT.ML\" handle _ => exit 1; commit();'"
35 echo " to the ML session"
37 echo " INPUT (default \"$DEFAULT_LOGIC\") and OUTPUT specify in/out heaps."
38 echo " These are either names to be searched in the Isabelle path, or actual"
39 echo " file names (containing at least one /)."
40 echo " If INPUT is \"SYSTEM\", just start the bare bones ML system."
52 ## process command line
63 while getopts "ce:qru" OPT
70 MLTEXT="$MLTEXT $OPTARG"
73 OPTIONS="$OPTIONS $OPTARG"
82 MLTEXT="$MLTEXT use\"ROOT.ML\" handle _ => exit 1; commit();"
90 shift $(($OPTIND - 1))
103 if [ $# -ge 1 ]; then
108 [ $# -ne 0 ] && fail "Bad args: $*"
113 [ -z "$ML_SYSTEM" ] && fail "Missing ML system settings! Unable to run Isabelle."
118 [ -z "$INPUT" ] && INPUT="$DEFAULT_LOGIC"
126 [ ! -f "$INFILE" ] && fail "Bad heap file file: \"$INFILE\""
131 for DIR in $(echo $ISABELLE_PATH | tr : " ")
133 ISA_PATH="$ISA_PATH $DIR/$ML_SYSTEM-$PLATFORM"
134 [ -z "$INFILE" -a -f $DIR/$ML_SYSTEM-$PLATFORM/$INPUT ] && INFILE=$DIR/$ML_SYSTEM-$PLATFORM/$INPUT
136 if [ -z "$INFILE" ]; then
137 echo "Unknown logic \"$INPUT\" -- no heap file found in:"
152 [ -z "$READONLY" -a -w "$INFILE" ] && OUTFILE="$INFILE"
158 OUTDIR="$ISABELLE_OUTPUT/$ML_SYSTEM-$PLATFORM"
160 OUTFILE="$OUTDIR/$OUTPUT"
167 ML_SYSTEM_BASE=$(echo $ML_SYSTEM | cut -f1 -d-)
169 export INFILE OUTFILE COPYDB MLTEXT OPTIONS TERMINATE
170 [ -f $ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM ] && exec $ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM
171 exec $ISABELLE_HOME/lib/scripts/run-$ML_SYSTEM_BASE