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@28504: echo " Available tools are:" wenzelm@28504: ( wenzelm@28504: ORIG_IFS="$IFS" wenzelm@28504: IFS=":" wenzelm@28504: for DIR in $ISABELLE_TOOLS wenzelm@28504: do wenzelm@28934: if [ -d "$DIR" ]; then wenzelm@28934: cd "$DIR" wenzelm@28934: for T in * wenzelm@28934: do wenzelm@28934: if [ -f "$T" -a -x "$T" ]; then wenzelm@28934: DESCRLINE=$(fgrep DESCRIPTION: "$T" | sed -e 's/^.*DESCRIPTION: *//') wenzelm@28934: echo " $T - $DESCRLINE" wenzelm@28934: fi wenzelm@28934: done wenzelm@28934: fi wenzelm@28504: done wenzelm@28504: IFS="$ORIG_IFS" wenzelm@28504: ) 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@28504: ORIG_IFS="$IFS" wenzelm@28504: IFS=":" wenzelm@28504: for DIR in $ISABELLE_TOOLS wenzelm@28504: do wenzelm@28504: TOOL="$DIR/$TOOLNAME" wenzelm@28504: [ -f "$TOOL" -a -x "$TOOL" ] && exec "$TOOL" "$@" wenzelm@28504: done wenzelm@28504: IFS="$ORIG_IFS" wenzelm@28504: wenzelm@28504: fail "Unknown Isabelle tool: $TOOLNAME"