bin/isabelle
author Walther Neuper <neuper@ist.tugraz.at>
Thu, 09 Sep 2010 13:31:36 +0200
branchisac-update-Isa09-2
changeset 37999 7d603b7ead73
parent 33931 44a10fe6bd10
child 37955 5305daa4228e
child 42948 96c50a4210a2
permissions -rwxr-xr-x
updated Knowledge/Biegelinie.thy
wenzelm@10555
     1
#!/usr/bin/env bash
wenzelm@2292
     2
#
wenzelm@9786
     3
# Author: Markus Wenzel, TU Muenchen
wenzelm@2308
     4
#
wenzelm@28504
     5
# Isabelle tool wrapper.
wenzelm@2292
     6
wenzelm@15843
     7
if [ -L "$0" ]; then
wenzelm@15843
     8
  TARGET="$(LC_ALL=C ls -l "$0" | sed 's/.* -> //')"
wenzelm@15967
     9
  exec "$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd "$(dirname "$TARGET")"; pwd)/$(basename "$TARGET")" "$@"
wenzelm@15843
    10
fi
wenzelm@15843
    11
wenzelm@2292
    12
wenzelm@28504
    13
## settings
wenzelm@2292
    14
wenzelm@28504
    15
PRG="$(basename "$0")"
wenzelm@28504
    16
wenzelm@28504
    17
ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)"
wenzelm@28504
    18
source "$ISABELLE_HOME/lib/scripts/getsettings" || exit 2
wenzelm@28504
    19
wenzelm@32390
    20
splitarray ":" "$ISABELLE_TOOLS"; TOOLS=("${SPLITARRAY[@]}")
wenzelm@32322
    21
wenzelm@28504
    22
wenzelm@28504
    23
## diagnostics
wenzelm@28504
    24
wenzelm@28504
    25
function usage()
wenzelm@28504
    26
{
wenzelm@28504
    27
  echo
wenzelm@28506
    28
  echo "Usage: $PRG NAME [ARGS ...]"
wenzelm@28504
    29
  echo
wenzelm@28506
    30
  echo "  Start Isabelle tool NAME with ARGS; pass \"-?\" for tool specific help."
wenzelm@28504
    31
  echo
wenzelm@28504
    32
  echo "  Available tools are:"
wenzelm@33931
    33
  for DIR in "${TOOLS[@]}"
wenzelm@32322
    34
  do
wenzelm@32322
    35
    if [ -d "$DIR" ]; then
wenzelm@32322
    36
      for TOOL in "$DIR"/*
wenzelm@32322
    37
      do
wenzelm@32322
    38
        if [ -f "$TOOL" -a -x "$TOOL" ]; then
wenzelm@32322
    39
          NAME="$(basename "$TOOL")"
wenzelm@32322
    40
          DESCRLINE="$(fgrep DESCRIPTION: "$TOOL" | sed -e 's/^.*DESCRIPTION: *//')"
wenzelm@32322
    41
          echo "    $NAME - $DESCRLINE"
wenzelm@32322
    42
        fi
wenzelm@32322
    43
      done
wenzelm@32322
    44
    fi
wenzelm@32322
    45
  done
wenzelm@28504
    46
  exit 1
wenzelm@28504
    47
}
wenzelm@28504
    48
wenzelm@28504
    49
function fail()
wenzelm@28504
    50
{
wenzelm@28504
    51
  echo "$1" >&2
wenzelm@28504
    52
  exit 2
wenzelm@28504
    53
}
wenzelm@28504
    54
wenzelm@28504
    55
wenzelm@28504
    56
## args
wenzelm@28504
    57
wenzelm@28504
    58
[ "$#" -lt 1 -o "$1" = "-?" ] && usage
wenzelm@28504
    59
wenzelm@28504
    60
TOOLNAME="$1"
wenzelm@28504
    61
shift
wenzelm@28504
    62
wenzelm@28504
    63
wenzelm@28504
    64
## main
wenzelm@28504
    65
wenzelm@32322
    66
for DIR in "${TOOLS[@]}"
wenzelm@28504
    67
do
wenzelm@28504
    68
  TOOL="$DIR/$TOOLNAME"
wenzelm@28504
    69
  [ -f "$TOOL" -a -x "$TOOL" ] && exec "$TOOL" "$@"
wenzelm@28504
    70
done
wenzelm@28504
    71
wenzelm@28504
    72
fail "Unknown Isabelle tool: $TOOLNAME"