| 10555 |      1 | #!/usr/bin/env bash
 | 
| 2332 |      2 | #
 | 
|  |      3 | # $Id$
 | 
| 9788 |      4 | # Author: Markus Wenzel, TU Muenchen
 | 
| 2332 |      5 | #
 | 
|  |      6 | # DESCRIPTION: view Isabelle documentation
 | 
|  |      7 | 
 | 
|  |      8 | 
 | 
| 10511 |      9 | PRG="$(basename "$0")"
 | 
| 2332 |     10 | 
 | 
|  |     11 | function usage()
 | 
|  |     12 | {
 | 
|  |     13 |   echo
 | 
|  |     14 |   echo "Usage: $PRG [DOC]"
 | 
|  |     15 |   echo
 | 
|  |     16 |   echo "  View Isabelle documentation DOC, or show list of available documents."
 | 
|  |     17 |   echo
 | 
|  |     18 |   exit 1
 | 
|  |     19 | }
 | 
|  |     20 | 
 | 
|  |     21 | function fail()
 | 
|  |     22 | {
 | 
|  |     23 |   echo "$1" >&2
 | 
|  |     24 |   exit 2
 | 
|  |     25 | }
 | 
|  |     26 | 
 | 
|  |     27 | 
 | 
|  |     28 | ## args
 | 
|  |     29 | 
 | 
|  |     30 | DOC=""
 | 
| 9788 |     31 | [ "$#" -ge 1 ] && { DOC="$1"; shift; }
 | 
| 2332 |     32 | 
 | 
| 9788 |     33 | [ "$#" -ne 0 -o "$DOC" = "-?" ] && usage
 | 
| 2332 |     34 | 
 | 
|  |     35 | 
 | 
|  |     36 | ## main
 | 
|  |     37 | 
 | 
|  |     38 | if [ -z "$DOC" ]; then
 | 
| 9788 |     39 |   ORIG_IFS="$IFS"
 | 
|  |     40 |   IFS=":"
 | 
|  |     41 |   for DIR in $ISABELLE_DOCS
 | 
| 2332 |     42 |   do
 | 
| 15703 |     43 |     [ -d "$DIR" ] || fail "Bad document directory: $DIR"
 | 
| 9788 |     44 |     [ -f "$DIR/Contents" ] && grep -v "^>>" "$DIR/Contents"
 | 
| 2332 |     45 |   done
 | 
| 9788 |     46 |   IFS="$ORIG_IFS"
 | 
| 2332 |     47 | else
 | 
| 9788 |     48 |   ORIG_IFS="$IFS"
 | 
|  |     49 |   IFS=":"
 | 
|  |     50 |   for DIR in $ISABELLE_DOCS
 | 
| 2332 |     51 |   do
 | 
| 15703 |     52 |     IFS="$ORIG_IFS"
 | 
|  |     53 |     [ -d "$DIR" ] || fail "Bad document directory: $DIR"
 | 
|  |     54 |     for FMT in "$ISABELLE_DOC_FORMAT" dvi
 | 
|  |     55 |     do
 | 
|  |     56 |       [ -f "$DIR/$DOC.$FMT" ] && { cd "$DIR"; exec "$ISATOOL" display "$DOC.$FMT"; }
 | 
|  |     57 |     done
 | 
| 2332 |     58 |   done
 | 
| 9788 |     59 |   IFS="$ORIG_IFS"
 | 
| 2332 |     60 |   fail "Unknown Isabelle document: $DOC"  
 | 
|  |     61 | fi
 | 
| 15717 |     62 | 
 |