lib/Tools/usedir
changeset 9788 df671fa2562a
parent 9237 161fb7f00414
child 10511 efb3428c9879
equal deleted inserted replaced
9787:fb8c5a66dbe8 9788:df671fa2562a
     1 #!/bin/bash
     1 #!/bin/bash
     2 #
     2 #
     3 # $Id$
     3 # $Id$
       
     4 # Author: Markus Wenzel, TU Muenchen
       
     5 # License: GPL (GNU GENERAL PUBLIC LICENSE)
     4 #
     6 #
     5 # DESCRIPTION: build object-logic or run examples
     7 # DESCRIPTION: build object-logic or run examples
     6 
     8 
     7 
     9 
     8 ## diagnostics
    10 ## diagnostics
     9 
    11 
    10 PRG=$(basename $0)
    12 PRG=$(basename "$0")
    11 
    13 
    12 function usage()
    14 function usage()
    13 {
    15 {
    14   echo
    16   echo
    15   echo "Usage: $PRG [OPTIONS] LOGIC NAME"
    17   echo "Usage: $PRG [OPTIONS] LOGIC NAME"
    90 shift $(($OPTIND - 1))
    92 shift $(($OPTIND - 1))
    91 
    93 
    92 
    94 
    93 # args
    95 # args
    94 
    96 
    95 [ $# -ne 2 ] && usage
    97 [ "$#" -ne 2 ] && usage
    96 
    98 
    97 LOGIC="$1"; shift
    99 LOGIC="$1"; shift
    98 NAME="$1"; shift
   100 NAME="$1"; shift
    99 
   101 
   100 [ -z "$SESSION" ] && SESSION=$(basename $NAME)
   102 [ -z "$SESSION" ] && SESSION=$(basename "$NAME")
   101 
   103 
   102 
   104 
   103 
   105 
   104 ## main
   106 ## main
   105 
   107 
   106 # prepare browser info dir
   108 # prepare browser info dir
   107 
   109 
   108 if [ "$INFO" = "true" -a ! -f $ISABELLE_BROWSER_INFO/index.html ]; then
   110 if [ "$INFO" = "true" -a ! -f "$ISABELLE_BROWSER_INFO/index.html" ]; then
   109   mkdir -p $ISABELLE_BROWSER_INFO
   111   mkdir -p "$ISABELLE_BROWSER_INFO"
   110   cp $ISABELLE_HOME/lib/logo/isabelle.gif $ISABELLE_BROWSER_INFO/isabelle.gif
   112   cp "$ISABELLE_HOME/lib/logo/isabelle.gif" "$ISABELLE_BROWSER_INFO/isabelle.gif"
   111   cp $ISABELLE_HOME/lib/html/index.html $ISABELLE_BROWSER_INFO/index.html
   113   cp "$ISABELLE_HOME/lib/html/index.html" "$ISABELLE_BROWSER_INFO/index.html"
   112 fi
   114 fi
   113 
   115 
   114 
   116 
   115 # prepare log dir
   117 # prepare log dir
   116 
   118 
   124 
   126 
   125 [ -z "$BUILD" ] && cd "$NAME"
   127 [ -z "$BUILD" ] && cd "$NAME"
   126 
   128 
   127 if [ "$DOCUMENT" != false -a -d document ]; then
   129 if [ "$DOCUMENT" != false -a -d document ]; then
   128   DOC="$DOCUMENT"
   130   DOC="$DOCUMENT"
   129   [ -n "$DUMP" -a -d "$DUMP" ] && $ISATOOL latex -o sty "$DUMP/root.tex" >/dev/null
   131   [ -n "$DUMP" -a -d "$DUMP" ] && "$ISATOOL" latex -o sty "$DUMP/root.tex" >/dev/null
   130 else
   132 else
   131   DOC=""
   133   DOC=""
   132 fi
   134 fi
   133 
   135 
   134 
   136 
   140   LOG="$LOGDIR/$ITEM"
   142   LOG="$LOGDIR/$ITEM"
   141 
   143 
   142   OPT_C=""
   144   OPT_C=""
   143   [ "$COMPRESS" = true ] && OPT_C="-c"
   145   [ "$COMPRESS" = true ] && OPT_C="-c"
   144 
   146 
   145   $ISABELLE \
   147   "$ISABELLE" \
   146     -e "Session.use_dir $RESET $INFO \"$DOC\" \"$PARENT\" \"$SESSION\" \"$DUMP\" \"$RPATH\";" \
   148     -e "Session.use_dir $RESET $INFO \"$DOC\" \"$PARENT\" \"$SESSION\" \"$DUMP\" \"$RPATH\";" \
   147     $OPT_C -q -w $LOGIC $NAME > $LOG 2>&1
   149     $OPT_C -q -w $LOGIC $NAME > "$LOG" 2>&1
   148   RC=$?
   150   RC="$?"
   149 else
   151 else
   150   ITEM=$(basename $LOGIC)-"$SESSION"
   152   ITEM=$(basename "$LOGIC")-"$SESSION"
   151   echo "Running $ITEM ..."
   153   echo "Running $ITEM ..."
   152   LOG="$LOGDIR/$ITEM"
   154   LOG="$LOGDIR/$ITEM"
   153 
   155 
   154   $ISABELLE \
   156   "$ISABELLE" \
   155     -e "Session.use_dir $RESET $INFO \"$DOC\" \"$PARENT\" \"$SESSION\" \"$DUMP\" \"$RPATH\"; quit();" \
   157     -e "Session.use_dir $RESET $INFO \"$DOC\" \"$PARENT\" \"$SESSION\" \"$DUMP\" \"$RPATH\"; quit();" \
   156     -r -q $LOGIC > $LOG 2>&1
   158     -r -q "$LOGIC" > "$LOG" 2>&1
   157   RC=$?
   159   RC="$?"
   158   cd ..
   160   cd ..
   159 fi
   161 fi
   160 
   162 
   161 ELAPSED=$($ISABELLE_HOME/lib/scripts/showtime $SECONDS)
   163 ELAPSED=$("$ISABELLE_HOME/lib/scripts/showtime" "$SECONDS")
   162 
   164 
   163 
   165 
   164 # exit status
   166 # exit status
   165 
   167 
   166 if [ $RC -eq 0 ]; then
   168 if [ "$RC" -eq 0 ]; then
   167   echo "Finished $ITEM ($ELAPSED elapsed time)"
   169   echo "Finished $ITEM ($ELAPSED elapsed time)"
   168   gzip --force "$LOG"
   170   gzip --force "$LOG"
   169 else
   171 else
   170   echo "$ITEM FAILED"
   172   echo "$ITEM FAILED"
   171   echo "(see also $LOG)"
   173   echo "(see also $LOG)"
   172   echo; tail $LOG; echo
   174   echo; tail "$LOG"; echo
   173 fi
   175 fi
   174 
   176 
   175 exit $RC
   177 exit "$RC"