bin/isabelle
author wenzelm
Tue, 25 Jul 2023 15:52:32 +0200
changeset 78462 3023063833e4
parent 74038 b4f57bfe82e7
permissions -rwxr-xr-x
tuned;

#!/usr/bin/env bash
#
# Author: Markus Wenzel, TU Muenchen
#
# Isabelle tool wrapper.

unset CDPATH

if [ -L "$0" ]; then
  TARGET="$(LC_ALL=C ls -l "$0" | sed 's/.* -> //')"
  exec "$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd "$(dirname "$TARGET")"; pwd)/$(basename "$TARGET")" "$@"
fi


## settings

PRG="$(basename "$0")"

ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)"
source "$ISABELLE_HOME/lib/scripts/getsettings" || exit 2


## external tool (shell script)

if [ "$#" -ge 1 -a "$1" != "-?" ]
then
  TOOL_NAME="$1"

  splitarray ":" "$ISABELLE_TOOLS"; TOOLS=("${SPLITARRAY[@]}")
  for DIR in "${TOOLS[@]}"
  do
    TOOL="$DIR/$TOOL_NAME"
    case "$TOOL" in
      *~ | *.orig) ;;
      *)
        if [ -f "$TOOL" -a -x "$TOOL" ]; then
          shift
          exec "$TOOL" "$@"
        fi
        ;;
    esac
  done
fi


## internal tool or usage (Scala)

"$ISABELLE_HOME/lib/Tools/scala_build" || exit $?

eval "declare -a JAVA_ARGS=($ISABELLE_TOOL_JAVA_OPTIONS)"
exec isabelle java "${JAVA_ARGS[@]}" isabelle.Isabelle_Tool "$@"