#!/bin/sh # # $Id: doc,v 1.13 2005/04/13 16:48:06 wenzelm Exp $ # Author: Markus Wenzel, TU Muenchen # # DESCRIPTION: view Isabelle documentation PRG="$(basename "$0")" usage() { echo echo "Usage: $PRG [DOC]" echo echo " View Isabelle documentation DOC, or show list of available documents." echo exit 1 } fail() { echo "$1" >&2 exit 2 } ## args DOC="" [ "$#" -ge 1 ] && { DOC="$1"; shift; } [ "$#" -ne 0 -o "$DOC" = "-?" ] && usage ## main if [ -z "$DOC" ]; then ORIG_IFS="$IFS" IFS=":" for DIR in $ISABELLE_DOCS do [ -d "$DIR" ] || fail "Bad document directory: $DIR" [ -f "$DIR/Contents" ] && grep -v "^>>" "$DIR/Contents" done IFS="$ORIG_IFS" else ORIG_IFS="$IFS" IFS=":" for DIR in $ISABELLE_DOCS do IFS="$ORIG_IFS" [ -d "$DIR" ] || fail "Bad document directory: $DIR" for FMT in "$ISABELLE_DOC_FORMAT" dvi do [ -f "$DIR/$DOC.$FMT" ] && { cd "$DIR"; exec "$ISATOOL" display "$DOC.$FMT"; } done done IFS="$ORIG_IFS" fail "Unknown Isabelle document: $DOC" fi