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