lib/Tools/document
author wenzelm
Sat, 09 Oct 1999 23:16:31 +0200
changeset 7814 ef6d84f16592
parent 7793 e0676a932348
child 7857 a49a3978fe3a
permissions -rwxr-xr-x
check format; support bibtex;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7793
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
     1
#!/bin/bash
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
     2
#
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
     3
# $Id$
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
     4
#
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
     5
# DESCRIPTION: prepare theory session document
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
     6
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
     7
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
     8
PRG=$(basename $0)
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
     9
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    10
function usage()
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    11
{
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    12
  echo
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    13
  echo "Usage: $PRG [OPTIONS] [DIR]"
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    14
  echo
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    15
  echo "  Options are:"
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    16
  echo "    -o FORMAT    specify output format: dvi (default), dvi.gz, ps, ps.gz, pdf"
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    17
  echo
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    18
  echo
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    19
  echo "  Prepare the theory session document in DIR (default .)"
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    20
  echo "  producing the speficied output format."
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    21
  echo
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    22
  exit 1
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    23
}
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    24
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    25
function fail()
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    26
{
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    27
  echo "$1" >&2
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    28
  exit 2
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    29
}
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    30
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    31
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    32
## process command line
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    33
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    34
# options
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    35
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    36
OUTFORMAT=dvi
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    37
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    38
while getopts "o:" OPT
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    39
do
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    40
  case "$OPT" in
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    41
    o)
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    42
      OUTFORMAT="$OPTARG"
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    43
      ;;
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    44
    \?)
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    45
      usage
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    46
      ;;
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    47
  esac
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    48
done
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    49
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    50
shift $(($OPTIND - 1))
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    51
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    52
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    53
# args
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    54
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    55
DIR="."
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    56
[ $# -ge 1 ] && { DIR="$1"; shift; }
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    57
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    58
[ $# -ne 0 ] && usage
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    59
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    60
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    61
## main
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    62
7814
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    63
# check format
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    64
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    65
case "$OUTFORMAT" in
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    66
  dvi | dvi.gz | ps | ps.gz | pdf)
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    67
    ;;
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    68
  *)
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    69
    fail "Bad output format '$OUTFORMAT'"
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    70
    ;;
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    71
esac
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    72
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    73
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    74
# prepare document
7793
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    75
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    76
cd "$DIR" || fail "Bad directory '$DIR'"
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    77
7814
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    78
function pre_latex ()
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    79
{
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    80
  local FMT="$1"
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    81
  if [ -f root.bib ]
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    82
  then
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    83
    $ISATOOL latex -o "$FMT" && \
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    84
    $ISATOOL latex -o bbl && \
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    85
    $ISATOOL latex -o "$FMT"
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    86
  else
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    87
    $ISATOOL latex -o "$FMT"
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    88
  fi
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    89
}
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    90
7793
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    91
if [ -f IsaMakefile ]; then
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    92
  $ISATOOL make "$OUTFORMAT"
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    93
  RC=$?   #FIXME !??
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    94
elif [ "$OUTFORMAT" = pdf ]; then
7814
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    95
  pre_latex pdf && \
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    96
  $ISATOOL latex -o pdf
7793
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    97
  RC=$?
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
    98
else
7814
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
    99
  pre_latex dvi && \
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
   100
  $ISATOOL latex -o "$OUTFORMAT"
7793
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
   101
  RC=$?
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
   102
fi
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
   103
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
   104
7814
ef6d84f16592 check format;
wenzelm
parents: 7793
diff changeset
   105
# install
7793
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
   106
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
   107
[ "$RC" -gt 0 -o ! -f "root.$OUTFORMAT" ] && fail "Failed to prepare document in directory '$DIR'"
e0676a932348 prepare theory session document;
wenzelm
parents:
diff changeset
   108
cp -f "root.$OUTFORMAT" "../document.$OUTFORMAT"