bin/isabelle
author wenzelm
Sat Oct 04 17:50:57 2008 +0200 (2008-10-04)
changeset 28506 3ab515ee4e6f
parent 28504 7ad7d7d6df47
child 28934 801098c96f59
permissions -rwxr-xr-x
tuned isabelle usage;
wenzelm@10555
     1
#!/usr/bin/env bash
wenzelm@2292
     2
#
wenzelm@2308
     3
# $Id$
wenzelm@9786
     4
# Author: Markus Wenzel, TU Muenchen
wenzelm@2308
     5
#
wenzelm@28504
     6
# Isabelle tool wrapper.
wenzelm@2292
     7
wenzelm@15843
     8
if [ -L "$0" ]; then
wenzelm@15843
     9
  TARGET="$(LC_ALL=C ls -l "$0" | sed 's/.* -> //')"
wenzelm@15967
    10
  exec "$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd "$(dirname "$TARGET")"; pwd)/$(basename "$TARGET")" "$@"
wenzelm@15843
    11
fi
wenzelm@15843
    12
wenzelm@28504
    13
wenzelm@28504
    14
## settings
wenzelm@28504
    15
wenzelm@28504
    16
PRG="$(basename "$0")"
wenzelm@28504
    17
wenzelm@28504
    18
ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)"
wenzelm@28504
    19
source "$ISABELLE_HOME/lib/scripts/getsettings" || exit 2
wenzelm@28504
    20
wenzelm@28504
    21
wenzelm@28504
    22
## diagnostics
wenzelm@2292
    23
wenzelm@28504
    24
function usage()
wenzelm@28504
    25
{
wenzelm@28504
    26
  echo
wenzelm@28506
    27
  echo "Usage: $PRG NAME [ARGS ...]"
wenzelm@28504
    28
  echo
wenzelm@28506
    29
  echo "  Start Isabelle tool NAME with ARGS; pass \"-?\" for tool specific help."
wenzelm@28504
    30
  echo
wenzelm@28504
    31
  echo "  Available tools are:"
wenzelm@28504
    32
  (
wenzelm@28504
    33
    ORIG_IFS="$IFS"
wenzelm@28504
    34
    IFS=":"
wenzelm@28504
    35
    for DIR in $ISABELLE_TOOLS
wenzelm@28504
    36
    do
wenzelm@28504
    37
      cd "$DIR"
wenzelm@28504
    38
      for T in *
wenzelm@28504
    39
      do
wenzelm@28504
    40
        if [ -f "$T" -a -x "$T" ]; then
wenzelm@28504
    41
          DESCRLINE=$(fgrep DESCRIPTION: "$T" | sed -e 's/^.*DESCRIPTION: *//')
wenzelm@28504
    42
          echo "    $T - $DESCRLINE"
wenzelm@28504
    43
        fi
wenzelm@28504
    44
      done
wenzelm@28504
    45
    done
wenzelm@28504
    46
    IFS="$ORIG_IFS"
wenzelm@28504
    47
  )
wenzelm@28504
    48
  exit 1
wenzelm@28504
    49
}
wenzelm@9786
    50
wenzelm@28504
    51
function fail()
wenzelm@28504
    52
{
wenzelm@28504
    53
  echo "$1" >&2
wenzelm@28504
    54
  exit 2
wenzelm@28504
    55
}
wenzelm@28504
    56
wenzelm@28504
    57
wenzelm@28504
    58
## args
wenzelm@28504
    59
wenzelm@28504
    60
[ "$#" -lt 1 -o "$1" = "-?" ] && usage
wenzelm@28504
    61
wenzelm@28504
    62
TOOLNAME="$1"
wenzelm@28504
    63
shift
wenzelm@28504
    64
wenzelm@28504
    65
wenzelm@28504
    66
## main
wenzelm@28504
    67
wenzelm@28504
    68
ORIG_IFS="$IFS"
wenzelm@28504
    69
IFS=":"
wenzelm@28504
    70
for DIR in $ISABELLE_TOOLS
wenzelm@28504
    71
do
wenzelm@28504
    72
  TOOL="$DIR/$TOOLNAME"
wenzelm@28504
    73
  [ -f "$TOOL" -a -x "$TOOL" ] && exec "$TOOL" "$@"
wenzelm@28504
    74
done
wenzelm@28504
    75
IFS="$ORIG_IFS"
wenzelm@28504
    76
wenzelm@28504
    77
fail "Unknown Isabelle tool: $TOOLNAME"