1#!/usr/bin/env bash
2#
3# Author: Markus Wenzel, TU Muenchen
4#
5# Isabelle tool wrapper.
6
7if [ -L "$0" ]; then
8  TARGET="$(LC_ALL=C ls -l "$0" | sed 's/.* -> //')"
9  exec "$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd "$(dirname "$TARGET")"; pwd)/$(basename "$TARGET")" "$@"
10fi
11
12
13## settings
14
15PRG="$(basename "$0")"
16
17ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)"
18source "$ISABELLE_HOME/lib/scripts/getsettings" || exit 2
19
20
21## external tool (shell script)
22
23if [ "$#" -ge 1 -a "$1" != "-?" ]
24then
25  TOOL_NAME="$1"
26
27  splitarray ":" "$ISABELLE_TOOLS"; TOOLS=("${SPLITARRAY[@]}")
28  for DIR in "${TOOLS[@]}"
29  do
30    TOOL="$DIR/$TOOL_NAME"
31    case "$TOOL" in
32      *~ | *.orig) ;;
33      *)
34        if [ -f "$TOOL" -a -x "$TOOL" ]; then
35          shift
36          exec "$TOOL" "$@"
37        fi
38        ;;
39    esac
40  done
41fi
42
43
44## internal tool or usage (Scala)
45
46isabelle_admin_build jars || exit $?
47
48eval "declare -a JAVA_ARGS=($ISABELLE_TOOL_JAVA_OPTIONS)"
49exec isabelle java "${JAVA_ARGS[@]}" isabelle.Isabelle_Tool "$@"
50