lib/Tools/usedir
author wenzelm
Tue, 04 Jul 2000 01:10:53 +0200
changeset 9237 161fb7f00414
parent 9047 810966809663
child 9788 df671fa2562a
permissions -rwxr-xr-x
fixed usage;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3007
e5efa177ee0c removed -norc;
wenzelm
parents: 2917
diff changeset
     1
#!/bin/bash
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
     2
#
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
     3
# $Id$
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
     4
#
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
     5
# DESCRIPTION: build object-logic or run examples
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
     6
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
     7
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
     8
## diagnostics
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
     9
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    10
PRG=$(basename $0)
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    11
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    12
function usage()
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    13
{
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    14
  echo
9237
161fb7f00414 fixed usage;
wenzelm
parents: 9047
diff changeset
    15
  echo "Usage: $PRG [OPTIONS] LOGIC NAME"
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    16
  echo
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    17
  echo "  Options are:"
8197
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    18
  echo "    -D PATH      dump generated document sources into PATH"
6940
ee6640456cbb -B option;
wenzelm
parents: 6652
diff changeset
    19
  echo "    -P PATH      set path for remote theory browsing information"
6212
974310f9ca7d Session.init;
wenzelm
parents: 5034
diff changeset
    20
  echo "    -b           build mode (output heap image, using current dir)"
8359
124ad46105dd option -c: tell ML system to compress output image;
wenzelm
parents: 8241
diff changeset
    21
  echo "    -c BOOL      tell ML system to compress output image (default true)"
7737
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
    22
  echo "    -d FORMAT    build document as FORMAT (default false)"
3747
cd9b6c86926c There is now one single option -i for generating theory browsing
berghofe
parents: 3636
diff changeset
    23
  echo "    -i BOOL      generate theory browsing information,"
cd9b6c86926c There is now one single option -i for generating theory browsing
berghofe
parents: 3636
diff changeset
    24
  echo "                 i.e. HTML / graph data (default false)"
6212
974310f9ca7d Session.init;
wenzelm
parents: 5034
diff changeset
    25
  echo "    -r           reset session path"
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    26
  echo "    -s NAME      override session NAME"
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    27
  echo
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    28
  echo "  Build object-logic or run examples. Also creates browsing"
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    29
  echo "  information (HTML etc.) according to settings."
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    30
  echo
7461
94ae093f6706 usage: tell ISABELLE_USEDIR_OPTIONS;
wenzelm
parents: 7276
diff changeset
    31
  echo "  ISABELLE_USEDIR_OPTIONS=$ISABELLE_USEDIR_OPTIONS"
94ae093f6706 usage: tell ISABELLE_USEDIR_OPTIONS;
wenzelm
parents: 7276
diff changeset
    32
  echo
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    33
  exit 1
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    34
}
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    35
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    36
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    37
## process command line
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    38
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    39
# options
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    40
8197
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    41
DUMP=""
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    42
RPATH=""
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    43
BUILD=""
8747
22580c8bc62f fixed -c default value;
wenzelm
parents: 8568
diff changeset
    44
COMPRESS=true
7737
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
    45
DOCUMENT=false
3747
cd9b6c86926c There is now one single option -i for generating theory browsing
berghofe
parents: 3636
diff changeset
    46
INFO=false
6212
974310f9ca7d Session.init;
wenzelm
parents: 5034
diff changeset
    47
RESET=false
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    48
SESSION=""
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    49
2917
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    50
function getoptions()
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    51
{
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    52
  OPTIND=1
8197
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    53
  while getopts "D:P:bc:d:i:rs:" OPT
2917
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    54
  do
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    55
    case "$OPT" in
8197
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    56
      D)
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    57
        DUMP="$OPTARG"
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    58
        ;;
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    59
      P)
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    60
        RPATH="$OPTARG"
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
    61
        ;;
2917
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    62
      b)
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    63
        BUILD=true
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    64
        ;;
8359
124ad46105dd option -c: tell ML system to compress output image;
wenzelm
parents: 8241
diff changeset
    65
      c)
124ad46105dd option -c: tell ML system to compress output image;
wenzelm
parents: 8241
diff changeset
    66
        COMPRESS="$OPTARG"
124ad46105dd option -c: tell ML system to compress output image;
wenzelm
parents: 8241
diff changeset
    67
        ;;
7737
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
    68
      d)
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
    69
        DOCUMENT="$OPTARG"
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
    70
        ;;
3747
cd9b6c86926c There is now one single option -i for generating theory browsing
berghofe
parents: 3636
diff changeset
    71
      i)
cd9b6c86926c There is now one single option -i for generating theory browsing
berghofe
parents: 3636
diff changeset
    72
        INFO="$OPTARG"
2917
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    73
        ;;
6212
974310f9ca7d Session.init;
wenzelm
parents: 5034
diff changeset
    74
      r)
974310f9ca7d Session.init;
wenzelm
parents: 5034
diff changeset
    75
        RESET=true
974310f9ca7d Session.init;
wenzelm
parents: 5034
diff changeset
    76
        ;;
2917
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    77
      s)
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    78
        SESSION="$OPTARG"
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    79
        ;;
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    80
      \?)
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    81
        usage
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    82
        ;;
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    83
    esac
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    84
  done
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    85
}
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    86
2917
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    87
getoptions $ISABELLE_USEDIR_OPTIONS
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    88
c7411fce37e4 added -g, -h options;
wenzelm
parents: 2849
diff changeset
    89
getoptions "$@"
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    90
shift $(($OPTIND - 1))
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    91
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    92
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    93
# args
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    94
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    95
[ $# -ne 2 ] && usage
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    96
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    97
LOGIC="$1"; shift
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    98
NAME="$1"; shift
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
    99
4419
wenzelm
parents: 4075
diff changeset
   100
[ -z "$SESSION" ] && SESSION=$(basename $NAME)
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
   101
4419
wenzelm
parents: 4075
diff changeset
   102
wenzelm
parents: 4075
diff changeset
   103
wenzelm
parents: 4075
diff changeset
   104
## main
3636
3f2e55e5bacc Added some code for generating theory browsing data.
berghofe
parents: 3504
diff changeset
   105
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   106
# prepare browser info dir
4419
wenzelm
parents: 4075
diff changeset
   107
4586
wenzelm
parents: 4492
diff changeset
   108
if [ "$INFO" = "true" -a ! -f $ISABELLE_BROWSER_INFO/index.html ]; then
8241
a55484a9b19f mkdir -p $ISABELLE_BROWSER_INFO;
wenzelm
parents: 8218
diff changeset
   109
  mkdir -p $ISABELLE_BROWSER_INFO
8218
6c4bec5cd2ac eliminated gif dir;
wenzelm
parents: 8197
diff changeset
   110
  cp $ISABELLE_HOME/lib/logo/isabelle.gif $ISABELLE_BROWSER_INFO/isabelle.gif
8810
d0eae42f6d12 removed index2;
wenzelm
parents: 8747
diff changeset
   111
  cp $ISABELLE_HOME/lib/html/index.html $ISABELLE_BROWSER_INFO/index.html
3636
3f2e55e5bacc Added some code for generating theory browsing data.
berghofe
parents: 3504
diff changeset
   112
fi
3f2e55e5bacc Added some code for generating theory browsing data.
berghofe
parents: 3504
diff changeset
   113
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
   114
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   115
# prepare log dir
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   116
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   117
LOGDIR="$ISABELLE_OUTPUT/log"
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   118
mkdir -p "$LOGDIR"
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   119
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   120
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   121
# run isabelle
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   122
7737
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
   123
PARENT=$(basename "$LOGIC")
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
   124
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
   125
[ -z "$BUILD" ] && cd "$NAME"
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   126
8568
wenzelm
parents: 8565
diff changeset
   127
if [ "$DOCUMENT" != false -a -d document ]; then
wenzelm
parents: 8565
diff changeset
   128
  DOC="$DOCUMENT"
wenzelm
parents: 8565
diff changeset
   129
  [ -n "$DUMP" -a -d "$DUMP" ] && $ISATOOL latex -o sty "$DUMP/root.tex" >/dev/null
wenzelm
parents: 8565
diff changeset
   130
else
wenzelm
parents: 8565
diff changeset
   131
  DOC=""
wenzelm
parents: 8565
diff changeset
   132
fi
7737
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
   133
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
   134
acaf55bee03e document preparation options: -c -d;
wenzelm
parents: 7461
diff changeset
   135
SECONDS=0
6249
8bb90076cc7c Session.use_dir: check parent;
wenzelm
parents: 6212
diff changeset
   136
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
   137
if [ -n "$BUILD" ]; then
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   138
  ITEM="$SESSION"
7275
3a001f2148f7 removed -m option;
wenzelm
parents: 7259
diff changeset
   139
  echo "Building $ITEM ..."
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   140
  LOG="$LOGDIR/$ITEM"
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   141
8359
124ad46105dd option -c: tell ML system to compress output image;
wenzelm
parents: 8241
diff changeset
   142
  OPT_C=""
124ad46105dd option -c: tell ML system to compress output image;
wenzelm
parents: 8241
diff changeset
   143
  [ "$COMPRESS" = true ] && OPT_C="-c"
124ad46105dd option -c: tell ML system to compress output image;
wenzelm
parents: 8241
diff changeset
   144
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   145
  $ISABELLE \
8197
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
   146
    -e "Session.use_dir $RESET $INFO \"$DOC\" \"$PARENT\" \"$SESSION\" \"$DUMP\" \"$RPATH\";" \
8359
124ad46105dd option -c: tell ML system to compress output image;
wenzelm
parents: 8241
diff changeset
   147
    $OPT_C -q -w $LOGIC $NAME > $LOG 2>&1
6249
8bb90076cc7c Session.use_dir: check parent;
wenzelm
parents: 6212
diff changeset
   148
  RC=$?
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
   149
else
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   150
  ITEM=$(basename $LOGIC)-"$SESSION"
7275
3a001f2148f7 removed -m option;
wenzelm
parents: 7259
diff changeset
   151
  echo "Running $ITEM ..."
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   152
  LOG="$LOGDIR/$ITEM"
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   153
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   154
  $ISABELLE \
8197
baab8e487fad -D PATH: dump generated document sources into PATH;
wenzelm
parents: 7888
diff changeset
   155
    -e "Session.use_dir $RESET $INFO \"$DOC\" \"$PARENT\" \"$SESSION\" \"$DUMP\" \"$RPATH\"; quit();" \
4492
ab441d89a2cb stderr to $LOG;
wenzelm
parents: 4451
diff changeset
   156
    -r -q $LOGIC > $LOG 2>&1
6249
8bb90076cc7c Session.use_dir: check parent;
wenzelm
parents: 6212
diff changeset
   157
  RC=$?
6212
974310f9ca7d Session.init;
wenzelm
parents: 5034
diff changeset
   158
  cd ..
2808
e8a224e41b9f usedir -- build object-logic or run examples;
wenzelm
parents:
diff changeset
   159
fi
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   160
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   161
ELAPSED=$($ISABELLE_HOME/lib/scripts/showtime $SECONDS)
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   162
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   163
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   164
# exit status
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   165
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   166
if [ $RC -eq 0 ]; then
7275
3a001f2148f7 removed -m option;
wenzelm
parents: 7259
diff changeset
   167
  echo "Finished $ITEM ($ELAPSED elapsed time)"
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   168
  gzip --force "$LOG"
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   169
else
7259
e75aa311788c tuned messages;
wenzelm
parents: 7226
diff changeset
   170
  echo "$ITEM FAILED"
4451
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   171
  echo "(see also $LOG)"
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   172
  echo; tail $LOG; echo
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   173
fi
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   174
f9e3e9f1af61 log file;
wenzelm
parents: 4419
diff changeset
   175
exit $RC