lib/Tools/display
author wenzelm
Mon, 19 Sep 2011 14:40:38 +0200
changeset 45868 fd3a36e48b09
parent 29143 72c960b2b83e
child 48755 21c42b095c84
permissions -rwxr-xr-x
instantaneous cleanup (NB: VIEWER should be synchronous, cf. dd25b3055c4e);
     1 #!/usr/bin/env bash
     2 #
     3 # Author: Markus Wenzel, TU Muenchen
     4 #
     5 # DESCRIPTION: display document (in DVI or PDF format)
     6 
     7 
     8 PRG="$(basename "$0")"
     9 
    10 function usage()
    11 {
    12   echo
    13   echo "Usage: isabelle $PRG [OPTIONS] FILE"
    14   echo
    15   echo "  Options are:"
    16   echo "    -c           cleanup -- remove FILE after use"
    17   echo
    18   echo "  Display document FILE (in DVI or PDF format)."
    19   echo
    20   exit 1
    21 }
    22 
    23 function fail()
    24 {
    25   echo "$1" >&2
    26   exit 2
    27 }
    28 
    29 
    30 ## process command line
    31 
    32 # options
    33 
    34 CLEAN=""
    35 
    36 while getopts "c" OPT
    37 do
    38   case "$OPT" in
    39     c)
    40       CLEAN=true
    41       ;;
    42     \?)
    43       usage
    44       ;;
    45   esac
    46 done
    47 
    48 shift $(($OPTIND - 1))
    49 
    50 
    51 # args
    52 
    53 [ "$#" -ne 1 ] && usage
    54 
    55 FILE="$1"; shift
    56 
    57 
    58 ## main
    59 
    60 [ -f "$FILE" ] || fail "Bad file: $FILE"
    61 
    62 case "$FILE" in
    63     *.dvi)
    64       VIEWER="$DVI_VIEWER"
    65       ;;
    66     *.pdf)
    67       VIEWER="$PDF_VIEWER"
    68       ;;
    69     *)
    70       fail "Unknown file type: $FILE";
    71 esac
    72 
    73 if [ -n "$CLEAN" ]; then
    74   PRIVATE_FILE="${ISABELLE_TMP:-/tmp}/$$"$(basename "$FILE")
    75   mv "$FILE" "$PRIVATE_FILE" || fail "Cannot move file: $FILE"
    76   $VIEWER "$PRIVATE_FILE"
    77   rm -f "$PRIVATE_FILE"
    78 else
    79   exec $VIEWER "$FILE"
    80 fi