lib/Tools/display
author kleing
Thu, 30 Sep 2004 07:14:34 +0200
changeset 15218 39747a9e3c37
parent 15010 72fbe711e414
child 15223 e669fb5b0f5a
permissions -rwxr-xr-x
display pdf as well as dvi
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14930
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
     1
#!/usr/bin/env bash
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
     2
#
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
     3
# $Id$
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
     4
# Author: Markus Wenzel, TU Muenchen
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
     5
#
15218
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
     6
# DESCRIPTION: display document (in DVI or PDF format)
14930
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
     7
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
     8
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
     9
PRG="$(basename "$0")"
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    10
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    11
function usage()
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    12
{
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    13
  echo
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    14
  echo "Usage: $PRG [OPTIONS] FILE"
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    15
  echo
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    16
  echo "  Options are:"
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    17
  echo "    -c           cleanup -- remove FILE after use"
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    18
  echo
15218
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    19
  echo "  Display document FILE (in DVI or PDF format)."
14930
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    20
  echo
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    21
  exit 1
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    22
}
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    23
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    24
function fail()
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    25
{
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    26
  echo "$1" >&2
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    27
  exit 2
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    28
}
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    29
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    30
15218
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    31
function view()
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    32
{
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    33
  if [ "${1%%.dvi}.dvi" == "$1" ]; then
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    34
    exec $DVI_VIEWER "$1"
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    35
    return
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    36
  fi
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    37
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    38
  if [ "${1%%.pdf}.pdf" == "$1" ]; then
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    39
    exec $PDF_VIEWER "$1"
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    40
    return
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    41
  fi
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    42
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    43
  fail "Unknown file type: $FILE";
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    44
}
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    45
14930
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    46
## process command line
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    47
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    48
# options
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    49
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    50
CLEAN=""
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    51
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    52
while getopts "c" OPT
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    53
do
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    54
  case "$OPT" in
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    55
    c)
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    56
      CLEAN=true
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    57
      ;;
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    58
    \?)
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    59
      usage
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    60
      ;;
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    61
  esac
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    62
done
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    63
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    64
shift $(($OPTIND - 1))
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    65
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    66
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    67
# args
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    68
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    69
[ "$#" -ne 1 ] && usage
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    70
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    71
FILE="$1"; shift
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    72
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    73
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    74
## main
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    75
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    76
[ -f "$FILE" ] || fail "Bad file: $FILE"
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    77
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    78
if [ -n "$CLEAN" ]; then
15218
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    79
  PRIVATE_FILE="$ISABELLE_TMP_PREFIX/"$$"$FILE"
14930
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    80
  mv "$FILE" "$PRIVATE_FILE" || fail "Cannot move file: $FILE"
15218
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    81
  view "$PRIVATE_FILE"
14930
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    82
  rm -f "$PRIVATE_FILE"
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    83
else
15218
39747a9e3c37 display pdf as well as dvi
kleing
parents: 15010
diff changeset
    84
  view "$FILE"
14930
24a0b2dd9be6 display document (in DVI format)
wenzelm
parents:
diff changeset
    85
fi