bin/isabelle-process
changeset 52056 fc458f304f93
parent 52054 eaf17514aabd
--- a/bin/isabelle-process	Fri May 17 18:50:55 2013 +0200
+++ b/bin/isabelle-process	Fri May 17 19:04:52 2013 +0200
@@ -33,6 +33,7 @@
   echo "    -W IN:OUT    startup process wrapper, with input/output fifos"
   echo "    -e MLTEXT    pass MLTEXT to the ML session"
   echo "    -m MODE      add print mode for output"
+  echo "    -o OPTION    override Isabelle system OPTION (via NAME=VAL or NAME)"
   echo "    -q           non-interactive session"
   echo "    -r           open heap file read-only"
   echo "    -w           reset write permissions on OUTPUT"
@@ -63,11 +64,12 @@
 WRAPPER_FIFOS=""
 MLTEXT=""
 MODES=""
+declare -a SYSTEM_OPTIONS=()
 TERMINATE=""
 READONLY=""
 NOWRITE=""
 
-while getopts "IPST:W:e:m:qrw" OPT
+while getopts "IPST:W:e:m:o:qrw" OPT
 do
   case "$OPT" in
     I)
@@ -95,6 +97,9 @@
         MODES="\"$OPTARG\", $MODES"
       fi
       ;;
+    o)
+      SYSTEM_OPTIONS["${#SYSTEM_OPTIONS[@]}"]="$OPTARG"
+      ;;
     q)
       TERMINATE=true
       ;;
@@ -215,7 +220,8 @@
   MLTEXT="$MLTEXT; Isabelle_Process.init_fifos \"${FIFOS[0]}\" \"${FIFOS[1]}\";"
 else
   ISABELLE_PROCESS_OPTIONS="$ISABELLE_TMP/options"
-  "$ISABELLE_TOOL" options -x "$ISABELLE_PROCESS_OPTIONS" || fail "Failed to retrieve options"
+  "$ISABELLE_TOOL" options -x "$ISABELLE_PROCESS_OPTIONS" -- "${SYSTEM_OPTIONS[@]}" || \
+    fail "Failed to retrieve Isabelle system options"
   if [ "$INPUT" != RAW_ML_SYSTEM -a "$INPUT" != RAW ]; then
     MLTEXT="Options.load_default () handle _ => exit 2; $MLTEXT"
   fi