| author | haftmann | 
| Tue, 08 Aug 2006 08:19:18 +0200 | |
| changeset 20352 | bb56a6cbacac | 
| parent 15967 | f9163c6f69d6 | 
| permissions | -rwxr-xr-x | 
| 10555 | 1 | #!/usr/bin/env bash | 
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 2 | # | 
| 2307 | 3 | # $Id$ | 
| 9786 | 4 | # Author: Markus Wenzel, TU Muenchen | 
| 2307 | 5 | # | 
| 15967 | 6 | # Isabelle tool starter. | 
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 7 | |
| 15843 | 8 | if [ -L "$0" ]; then | 
| 9 | TARGET="$(LC_ALL=C ls -l "$0" | sed 's/.* -> //')" | |
| 15967 | 10 | exec "$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd "$(dirname "$TARGET")"; pwd)/$(basename "$TARGET")" "$@" | 
| 15843 | 11 | fi | 
| 12 | ||
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 13 | |
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 14 | ## settings | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 15 | |
| 10511 | 16 | PRG="$(basename "$0")" | 
| 2703 | 17 | |
| 15967 | 18 | ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)" | 
| 19 | source "$ISABELLE_HOME/lib/scripts/getsettings" || exit 2 | |
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 20 | |
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 21 | |
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 22 | ## diagnostics | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 23 | |
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 24 | function usage() | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 25 | {
 | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 26 | echo | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 27 | echo "Usage: $PRG TOOL [ARGS ...]" | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 28 | echo | 
| 2434 | 29 | echo " Start Isabelle utility program TOOL with ARGS. Pass \"-?\" to TOOL" | 
| 2787 | 30 | echo " for more specific help." | 
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 31 | echo | 
| 3276 | 32 | echo " Available tools are:" | 
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 33 | ( | 
| 9786 | 34 | ORIG_IFS="$IFS" | 
| 35 | IFS=":" | |
| 36 | for DIR in $ISABELLE_TOOLS | |
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 37 | do | 
| 9786 | 38 | cd "$DIR" | 
| 2787 | 39 | for T in * | 
| 40 | do | |
| 41 | if [ -f "$T" -a -x "$T" ]; then | |
| 11044 | 42 | DESCRLINE=$(fgrep DESCRIPTION: "$T" | sed -e 's/^.*DESCRIPTION: *//') | 
| 2787 | 43 | echo " $T - $DESCRLINE" | 
| 44 | fi | |
| 45 | done | |
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 46 | done | 
| 9786 | 47 | IFS="$ORIG_IFS" | 
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 48 | ) | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 49 | exit 1 | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 50 | } | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 51 | |
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 52 | function fail() | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 53 | {
 | 
| 2344 | 54 | echo "$1" >&2 | 
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 55 | exit 2 | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 56 | } | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 57 | |
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 58 | |
| 2787 | 59 | ## args | 
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 60 | |
| 9786 | 61 | [ "$#" -lt 1 -o "$1" = "-?" ] && usage | 
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 62 | |
| 2787 | 63 | TOOLNAME="$1" | 
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 64 | shift | 
| 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 65 | |
| 2787 | 66 | |
| 67 | ## main | |
| 2293 
749757db3ead
isatool: Isabelle tool starter -- keeps your PATH name space clean.
 wenzelm parents: diff
changeset | 68 | |
| 9786 | 69 | ORIG_IFS="$IFS" | 
| 70 | IFS=":" | |
| 71 | for DIR in $ISABELLE_TOOLS | |
| 2787 | 72 | do | 
| 9786 | 73 | TOOL="$DIR/$TOOLNAME" | 
| 2787 | 74 | [ -f "$TOOL" -a -x "$TOOL" ] && exec "$TOOL" "$@" | 
| 75 | done | |
| 9786 | 76 | IFS="$ORIG_IFS" | 
| 2787 | 77 | |
| 7971 | 78 | fail "Unknown Isabelle tool: $TOOLNAME" |