author | wenzelm |
Sat, 04 Oct 2008 16:05:09 +0200 | |
changeset 28500 | 4b79e5d3d0aa |
parent 27914 | 9a7f17370ffb |
child 28650 | a7ba12e0d3b7 |
permissions | -rwxr-xr-x |
wenzelm@10555 | 1 |
#!/usr/bin/env bash |
berghofe@3640 | 2 |
# |
berghofe@3640 | 3 |
# $Id$ |
wenzelm@9788 | 4 |
# Author: Markus Wenzel, TU Muenchen |
berghofe@3640 | 5 |
# |
berghofe@7766 | 6 |
# DESCRIPTION: Isabelle graph browser |
berghofe@3640 | 7 |
|
berghofe@3640 | 8 |
|
wenzelm@10511 | 9 |
PRG="$(basename "$0")" |
berghofe@3640 | 10 |
|
berghofe@3640 | 11 |
function usage() |
berghofe@3640 | 12 |
{ |
berghofe@3640 | 13 |
echo |
wenzelm@9237 | 14 |
echo "Usage: $PRG [OPTIONS] [GRAPHFILE]" |
berghofe@3640 | 15 |
echo |
berghofe@7766 | 16 |
echo " Options are:" |
wenzelm@20569 | 17 |
echo " -c cleanup -- remove GRAPHFILE after use" |
wenzelm@11801 | 18 |
echo " -o FILE output to FILE (ps, eps, pdf)" |
berghofe@7766 | 19 |
echo |
berghofe@3640 | 20 |
exit 1 |
berghofe@3640 | 21 |
} |
berghofe@3640 | 22 |
|
wenzelm@11801 | 23 |
function fail() |
wenzelm@11801 | 24 |
{ |
wenzelm@11801 | 25 |
echo "$1" >&2 |
wenzelm@11801 | 26 |
exit 2 |
wenzelm@11801 | 27 |
} |
wenzelm@11801 | 28 |
|
wenzelm@11801 | 29 |
|
berghofe@7766 | 30 |
## process command line |
berghofe@7766 | 31 |
|
berghofe@7766 | 32 |
# options |
berghofe@7766 | 33 |
|
wenzelm@20569 | 34 |
CLEAN="" |
wenzelm@11801 | 35 |
OUTFILE="" |
berghofe@7766 | 36 |
|
wenzelm@20569 | 37 |
while getopts "co:" OPT |
berghofe@7766 | 38 |
do |
berghofe@7766 | 39 |
case "$OPT" in |
wenzelm@20569 | 40 |
c) |
wenzelm@20569 | 41 |
CLEAN=true |
berghofe@7766 | 42 |
;; |
wenzelm@11801 | 43 |
o) |
wenzelm@11801 | 44 |
OUTFILE="$OPTARG" |
wenzelm@11801 | 45 |
;; |
berghofe@7766 | 46 |
\?) |
berghofe@7766 | 47 |
usage |
berghofe@7766 | 48 |
;; |
berghofe@7766 | 49 |
esac |
berghofe@7766 | 50 |
done |
berghofe@7766 | 51 |
|
berghofe@7766 | 52 |
shift $(($OPTIND - 1)) |
berghofe@7766 | 53 |
|
berghofe@7766 | 54 |
|
berghofe@7766 | 55 |
# args |
berghofe@7766 | 56 |
|
berghofe@7766 | 57 |
GRAPHFILE="" |
wenzelm@9788 | 58 |
[ "$#" -gt 0 ] && { GRAPHFILE="$1"; shift; } |
wenzelm@9788 | 59 |
[ "$#" -ne 0 ] && usage |
berghofe@7766 | 60 |
|
berghofe@3640 | 61 |
|
berghofe@3640 | 62 |
## main |
berghofe@3640 | 63 |
|
wenzelm@27907 | 64 |
classpath "$ISABELLE_HOME/lib/browser/GraphBrowser.jar" |
wenzelm@25650 | 65 |
|
wenzelm@9794 | 66 |
if [ -z "$GRAPHFILE" ]; then |
wenzelm@26230 | 67 |
[ -d "$ISABELLE_BROWSER_INFO" ] && cd "$ISABELLE_BROWSER_INFO" |
wenzelm@28500 | 68 |
exec "$ISABELLE_TOOL" java GraphBrowser.GraphBrowser |
wenzelm@9794 | 69 |
else |
wenzelm@20569 | 70 |
PRIVATE_FILE="${ISABELLE_TMP:-/tmp}/$$"$(basename "$GRAPHFILE") |
wenzelm@20569 | 71 |
if [ -n "$CLEAN" ]; then |
wenzelm@20569 | 72 |
mv -f "$GRAPHFILE" "$PRIVATE_FILE" || fail "Cannot move file: $FILE" |
wenzelm@20569 | 73 |
else |
wenzelm@20569 | 74 |
cp -f "$GRAPHFILE" "$PRIVATE_FILE" || fail "Cannot copy file: $FILE" |
wenzelm@20569 | 75 |
fi |
wenzelm@20569 | 76 |
|
wenzelm@11843 | 77 |
PDF="" |
wenzelm@11801 | 78 |
case "$OUTFILE" in |
wenzelm@11801 | 79 |
*.pdf) |
wenzelm@11843 | 80 |
OUTFILE="${OUTFILE%%.pdf}.eps" |
wenzelm@11801 | 81 |
PDF=true |
wenzelm@11801 | 82 |
;; |
wenzelm@11801 | 83 |
esac |
wenzelm@11801 | 84 |
|
wenzelm@11843 | 85 |
if [ -z "$OUTFILE" ]; then |
wenzelm@28500 | 86 |
"$ISABELLE_TOOL" java GraphBrowser.GraphBrowser "$(jvmpath "$PRIVATE_FILE")" |
berghofe@11813 | 87 |
else |
wenzelm@28500 | 88 |
"$ISABELLE_TOOL" java GraphBrowser.Console "$(jvmpath "$PRIVATE_FILE")" "$(jvmpath "$OUTFILE")" |
berghofe@11813 | 89 |
fi |
wenzelm@11843 | 90 |
RC="$?" |
wenzelm@11801 | 91 |
|
wenzelm@11801 | 92 |
if [ -n "$PDF" ]; then |
wenzelm@11843 | 93 |
"$ISABELLE_EPSTOPDF" "$OUTFILE" || fail "Failed to produce pdf output" |
wenzelm@11801 | 94 |
fi |
wenzelm@11801 | 95 |
|
wenzelm@20569 | 96 |
rm -f "$PRIVATE_FILE" |
wenzelm@9794 | 97 |
fi |
wenzelm@11843 | 98 |
|
wenzelm@11843 | 99 |
exit "$RC" |