bin/isabelle
author haftmann
Fri, 14 Jun 2019 08:34:27 +0000
changeset 70335 9bd8c16b6627
parent 66906 03a96b8c7c06
permissions -rwxr-xr-x
using (*)-syntax for partially applied infix is fine, contrary to ancient op-syntax

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

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_admin_build jars || exit $?

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