wenzelm@10555: #!/usr/bin/env bash wenzelm@2292: # wenzelm@9786: # Author: Markus Wenzel, TU Muenchen wenzelm@2308: # wenzelm@28504: # Isabelle tool wrapper. wenzelm@2292: wenzelm@15843: if [ -L "$0" ]; then wenzelm@15843: TARGET="$(LC_ALL=C ls -l "$0" | sed 's/.* -> //')" wenzelm@15967: exec "$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd "$(dirname "$TARGET")"; pwd)/$(basename "$TARGET")" "$@" wenzelm@15843: fi wenzelm@15843: wenzelm@28504: wenzelm@28504: ## settings wenzelm@28504: wenzelm@28504: PRG="$(basename "$0")" wenzelm@28504: wenzelm@28504: ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)" wenzelm@28504: source "$ISABELLE_HOME/lib/scripts/getsettings" || exit 2 wenzelm@28504: wenzelm@28504: wenzelm@28504: ## diagnostics wenzelm@2292: wenzelm@28504: function usage() wenzelm@28504: { wenzelm@28504: echo wenzelm@28506: echo "Usage: $PRG NAME [ARGS ...]" wenzelm@28504: echo wenzelm@28506: echo " Start Isabelle tool NAME with ARGS; pass \"-?\" for tool specific help." wenzelm@28504: echo wenzelm@48858: echo "Available tools:" wenzelm@42077: perl -w "$ISABELLE_HOME/lib/scripts/tools.pl" wenzelm@28504: exit 1 wenzelm@28504: } wenzelm@9786: wenzelm@28504: function fail() wenzelm@28504: { wenzelm@28504: echo "$1" >&2 wenzelm@28504: exit 2 wenzelm@28504: } wenzelm@28504: wenzelm@28504: wenzelm@28504: ## args wenzelm@28504: wenzelm@28504: [ "$#" -lt 1 -o "$1" = "-?" ] && usage wenzelm@28504: wenzelm@28504: TOOLNAME="$1" wenzelm@28504: shift wenzelm@28504: wenzelm@28504: wenzelm@28504: ## main wenzelm@28504: wenzelm@42077: splitarray ":" "$ISABELLE_TOOLS"; TOOLS=("${SPLITARRAY[@]}") wenzelm@42077: wenzelm@32322: for DIR in "${TOOLS[@]}" wenzelm@28504: do wenzelm@28504: TOOL="$DIR/$TOOLNAME" wenzelm@42077: case "$TOOL" in wenzelm@42124: *~ | *.orig) ;; wenzelm@42077: *) [ -f "$TOOL" -a -x "$TOOL" ] && exec "$TOOL" "$@" ;; wenzelm@42077: esac wenzelm@28504: done wenzelm@28504: wenzelm@28504: fail "Unknown Isabelle tool: $TOOLNAME"