lib/Tools/usedir
author wenzelm
Thu, 08 Jul 1999 18:40:43 +0200
changeset 6940 ee6640456cbb
parent 6652 401f14f25648
child 7226 1a4ed2eb48f3
permissions -rwxr-xr-x
-B option;
wenzelm@3007
     1
#!/bin/bash
wenzelm@2808
     2
#
wenzelm@2808
     3
# $Id$
wenzelm@2808
     4
#
wenzelm@2808
     5
# DESCRIPTION: build object-logic or run examples
wenzelm@2808
     6
wenzelm@2808
     7
wenzelm@2808
     8
## diagnostics
wenzelm@2808
     9
wenzelm@2808
    10
PRG=$(basename $0)
wenzelm@2808
    11
wenzelm@2808
    12
function usage()
wenzelm@2808
    13
{
wenzelm@2808
    14
  echo
wenzelm@2808
    15
  echo "Usage: $PRG LOGIC NAME"
wenzelm@2808
    16
  echo
wenzelm@2808
    17
  echo "  Options are:"
wenzelm@6940
    18
  echo "    -B           build mode with THIS_IS_ISABELLE_BUILD indication"
wenzelm@6940
    19
  echo "    -P PATH      set path for remote theory browsing information"
wenzelm@6212
    20
  echo "    -b           build mode (output heap image, using current dir)"
berghofe@3747
    21
  echo "    -i BOOL      generate theory browsing information,"
berghofe@3747
    22
  echo "                 i.e. HTML / graph data (default false)"
wenzelm@6212
    23
  echo "    -r           reset session path"
wenzelm@2808
    24
  echo "    -s NAME      override session NAME"
wenzelm@2808
    25
  echo
wenzelm@2808
    26
  echo "  Build object-logic or run examples. Also creates browsing"
wenzelm@2808
    27
  echo "  information (HTML etc.) according to settings."
wenzelm@2808
    28
  echo
wenzelm@2808
    29
  exit 1
wenzelm@2808
    30
}
wenzelm@2808
    31
wenzelm@2808
    32
wenzelm@2808
    33
## process command line
wenzelm@2808
    34
wenzelm@2808
    35
# options
wenzelm@2808
    36
wenzelm@2808
    37
BUILD=""
berghofe@3747
    38
INFO=false
wenzelm@6212
    39
RESET=false
wenzelm@2808
    40
SESSION=""
berghofe@6652
    41
RPATH=""
wenzelm@2808
    42
wenzelm@2917
    43
function getoptions()
wenzelm@2917
    44
{
wenzelm@2917
    45
  OPTIND=1
wenzelm@6940
    46
  while getopts "BP:bi:rs:" OPT
wenzelm@2917
    47
  do
wenzelm@2917
    48
    case "$OPT" in
wenzelm@6940
    49
      B)
wenzelm@6940
    50
        BUILD=true
wenzelm@6940
    51
        export THIS_IS_ISABELLE_BUILD=true
wenzelm@6940
    52
        ;;
wenzelm@2917
    53
      b)
wenzelm@2917
    54
        BUILD=true
wenzelm@2917
    55
        ;;
berghofe@3747
    56
      i)
berghofe@3747
    57
        INFO="$OPTARG"
wenzelm@2917
    58
        ;;
wenzelm@6212
    59
      r)
wenzelm@6212
    60
        RESET=true
wenzelm@6212
    61
        ;;
wenzelm@2917
    62
      s)
wenzelm@2917
    63
        SESSION="$OPTARG"
wenzelm@2917
    64
        ;;
berghofe@6652
    65
      P)
berghofe@6652
    66
        RPATH="$OPTARG"
berghofe@6652
    67
        ;;
wenzelm@2917
    68
      \?)
wenzelm@2917
    69
        usage
wenzelm@2917
    70
        ;;
wenzelm@2917
    71
    esac
wenzelm@2917
    72
  done
wenzelm@2917
    73
}
wenzelm@2808
    74
wenzelm@2917
    75
getoptions $ISABELLE_USEDIR_OPTIONS
wenzelm@2917
    76
wenzelm@2917
    77
getoptions "$@"
wenzelm@2808
    78
shift $(($OPTIND - 1))
wenzelm@2808
    79
wenzelm@2808
    80
wenzelm@2808
    81
# args
wenzelm@2808
    82
wenzelm@2808
    83
[ $# -ne 2 ] && usage
wenzelm@2808
    84
wenzelm@2808
    85
LOGIC="$1"; shift
wenzelm@2808
    86
NAME="$1"; shift
wenzelm@2808
    87
wenzelm@4419
    88
[ -z "$SESSION" ] && SESSION=$(basename $NAME)
wenzelm@2808
    89
berghofe@3636
    90
wenzelm@4419
    91
wenzelm@4419
    92
## main
wenzelm@4419
    93
wenzelm@4451
    94
# prepare browser info dir
wenzelm@4419
    95
wenzelm@4586
    96
if [ "$INFO" = "true" -a ! -f $ISABELLE_BROWSER_INFO/index.html ]; then
wenzelm@4419
    97
berghofe@3747
    98
  mkdir -p $ISABELLE_BROWSER_INFO/gif
wenzelm@3848
    99
  cp $ISABELLE_HOME/lib/logo/isabelle.gif $ISABELLE_BROWSER_INFO/gif/isabelle.gif
berghofe@3747
   100
  cp $ISABELLE_HOME/lib/html/index1.html $ISABELLE_BROWSER_INFO/index.html
wenzelm@4419
   101
berghofe@3636
   102
  mkdir -p $ISABELLE_BROWSER_INFO/graph
berghofe@3636
   103
  cp $ISABELLE_HOME/lib/html/index2.html $ISABELLE_BROWSER_INFO/graph/index.html
berghofe@3636
   104
  mkdir $ISABELLE_BROWSER_INFO/graph/GraphBrowser
berghofe@3636
   105
  mkdir $ISABELLE_BROWSER_INFO/graph/awtUtilities
wenzelm@4419
   106
  cp $ISABELLE_HOME/lib/browser/GraphBrowser/*.class $ISABELLE_BROWSER_INFO/graph/GraphBrowser
wenzelm@4419
   107
  cp $ISABELLE_HOME/lib/browser/awtUtilities/*.class $ISABELLE_BROWSER_INFO/graph/awtUtilities
wenzelm@4419
   108
berghofe@3636
   109
fi
berghofe@3636
   110
wenzelm@2808
   111
wenzelm@4451
   112
# prepare log dir
wenzelm@4451
   113
wenzelm@4451
   114
LOGDIR="$ISABELLE_OUTPUT/log"
wenzelm@4451
   115
mkdir -p "$LOGDIR"
wenzelm@4451
   116
wenzelm@4451
   117
wenzelm@4451
   118
# run isabelle
wenzelm@4451
   119
wenzelm@4451
   120
SECONDS=0
wenzelm@4451
   121
wenzelm@6249
   122
PARENT=$(basename "$LOGIC")
wenzelm@6249
   123
wenzelm@2808
   124
if [ -n "$BUILD" ]; then
wenzelm@4451
   125
  ITEM="$SESSION"
wenzelm@4451
   126
  echo -n "Building $ITEM ... "
wenzelm@4451
   127
  LOG="$LOGDIR/$ITEM"
wenzelm@4451
   128
wenzelm@4451
   129
  $ISABELLE \
berghofe@6652
   130
    -e "Session.use_dir $RESET $INFO \"$PARENT\" \"$SESSION\" \"$RPATH\";" \
wenzelm@4492
   131
    -q -w $LOGIC $NAME > $LOG 2>&1
wenzelm@6249
   132
  RC=$?
wenzelm@2808
   133
else
wenzelm@4451
   134
  ITEM=$(basename $LOGIC)-"$SESSION"
wenzelm@4451
   135
  echo -n "Running $ITEM ... "
wenzelm@4451
   136
  LOG="$LOGDIR/$ITEM"
wenzelm@4451
   137
wenzelm@6212
   138
  cd "$NAME"
wenzelm@4451
   139
  $ISABELLE \
berghofe@6652
   140
    -e "Session.use_dir $RESET $INFO \"$PARENT\" \"$SESSION\" \"$RPATH\"; quit();" \
wenzelm@4492
   141
    -r -q $LOGIC > $LOG 2>&1
wenzelm@6249
   142
  RC=$?
wenzelm@6212
   143
  cd ..
wenzelm@2808
   144
fi
wenzelm@4451
   145
wenzelm@4451
   146
ELAPSED=$($ISABELLE_HOME/lib/scripts/showtime $SECONDS)
wenzelm@4451
   147
wenzelm@4451
   148
wenzelm@4451
   149
# exit status
wenzelm@4451
   150
wenzelm@4451
   151
if [ $RC -eq 0 ]; then
wenzelm@4451
   152
  echo "OK  ($ELAPSED elapsed time)"
wenzelm@4451
   153
  gzip --force "$LOG"
wenzelm@4451
   154
else
wenzelm@4451
   155
  echo "FAILED"
wenzelm@4451
   156
  echo "(see also $LOG)"
wenzelm@4451
   157
  echo; tail $LOG; echo
wenzelm@4451
   158
fi
wenzelm@4451
   159
wenzelm@4451
   160
exit $RC