author | wenzelm |
Tue, 18 Jan 2011 21:33:07 +0100 | |
changeset 41858 | 9f99196ebd9f |
parent 33928 | a5e6e849a0d8 |
child 41890 | b9442d9ce7f5 |
permissions | -rwxr-xr-x |
wenzelm@29136 | 1 |
#!/bin/bash |
wenzelm@29136 | 2 |
# |
wenzelm@29136 | 3 |
# Author: Makarius |
wenzelm@29136 | 4 |
# |
wenzelm@29136 | 5 |
# Isabelle application wrapper |
wenzelm@29136 | 6 |
|
wenzelm@29136 | 7 |
THIS="$(cd "$(dirname "$0")"; pwd)" |
wenzelm@29149 | 8 |
THIS_APP="$(cd "$THIS/../.."; pwd)" |
wenzelm@29149 | 9 |
SUPER_APP="$(cd "$THIS/../../.."; pwd)" |
wenzelm@29136 | 10 |
|
wenzelm@29173 | 11 |
|
wenzelm@29173 | 12 |
# sane environment defaults |
wenzelm@29136 | 13 |
cd "$HOME" |
wenzelm@29173 | 14 |
PATH="$PATH:/opt/local/bin" |
wenzelm@29136 | 15 |
|
wenzelm@29136 | 16 |
|
wenzelm@29149 | 17 |
# settings support |
wenzelm@29136 | 18 |
|
wenzelm@29149 | 19 |
function choosefrom () |
wenzelm@29149 | 20 |
{ |
wenzelm@29149 | 21 |
local RESULT="" |
wenzelm@29149 | 22 |
local FILE="" |
wenzelm@29149 | 23 |
|
wenzelm@29149 | 24 |
for FILE in "$@" |
wenzelm@29149 | 25 |
do |
wenzelm@29149 | 26 |
[ -z "$RESULT" -a -e "$FILE" ] && RESULT="$FILE" |
wenzelm@29149 | 27 |
done |
wenzelm@29149 | 28 |
|
wenzelm@29149 | 29 |
[ -z "$RESULT" ] && RESULT="$FILE" |
wenzelm@29149 | 30 |
echo "$RESULT" |
wenzelm@29149 | 31 |
} |
wenzelm@29149 | 32 |
|
wenzelm@29149 | 33 |
|
wenzelm@29149 | 34 |
# Isabelle |
wenzelm@29149 | 35 |
|
wenzelm@29149 | 36 |
ISABELLE_TOOL="$(choosefrom \ |
wenzelm@29149 | 37 |
"$THIS/Isabelle/bin/isabelle" \ |
wenzelm@29149 | 38 |
"$SUPER_APP/Isabelle/bin/isabelle" \ |
wenzelm@29149 | 39 |
"$HOME/bin/isabelle" \ |
wenzelm@29149 | 40 |
isabelle)" |
wenzelm@29149 | 41 |
|
wenzelm@29149 | 42 |
|
wenzelm@29149 | 43 |
# Proof General / Emacs |
wenzelm@29149 | 44 |
|
wenzelm@29149 | 45 |
PROOFGENERAL_EMACS="$(choosefrom \ |
wenzelm@29149 | 46 |
"$THIS/Emacs.app/Contents/MacOS/Emacs" \ |
wenzelm@29149 | 47 |
"$SUPER_APP/Emacs.app/Contents/MacOS/Emacs" \ |
wenzelm@29149 | 48 |
/Applications/Emacs.app/Contents/MacOS/Emacs \ |
wenzelm@29149 | 49 |
"")" |
wenzelm@29149 | 50 |
|
wenzelm@33928 | 51 |
declare -a EMACS_OPTIONS=() |
wenzelm@29149 | 52 |
if [ -n "$PROOFGENERAL_EMACS" ]; then |
wenzelm@33928 | 53 |
EMACS_OPTIONS=(-p "$PROOFGENERAL_EMACS") |
wenzelm@29136 | 54 |
fi |
wenzelm@29136 | 55 |
|
wenzelm@29136 | 56 |
|
wenzelm@29149 | 57 |
# run interface with error feedback |
wenzelm@29136 | 58 |
|
wenzelm@29136 | 59 |
OUTPUT="/tmp/isabelle$$.out" |
wenzelm@29136 | 60 |
|
wenzelm@41858 | 61 |
# ( "$ISABELLE_TOOL" jedit "$@" ) > "$OUTPUT" 2>&1 |
wenzelm@33928 | 62 |
( "$ISABELLE_TOOL" emacs "${EMACS_OPTIONS[@]}" "$@" ) > "$OUTPUT" 2>&1 |
wenzelm@29136 | 63 |
RC=$? |
wenzelm@29136 | 64 |
|
wenzelm@29136 | 65 |
if [ "$RC" != 0 ]; then |
wenzelm@29136 | 66 |
echo >> "$OUTPUT" |
wenzelm@29136 | 67 |
echo "Return code: $RC" >> "$OUTPUT" |
wenzelm@29136 | 68 |
fi |
wenzelm@29136 | 69 |
|
wenzelm@29149 | 70 |
if [ $(stat -f "%z" "$OUTPUT") != 0 ]; then |
wenzelm@29136 | 71 |
"$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" textbox \ |
wenzelm@29136 | 72 |
--title "Isabelle" \ |
wenzelm@29136 | 73 |
--informative-text "Isabelle output" \ |
wenzelm@29136 | 74 |
--text-from-file "$OUTPUT" \ |
wenzelm@29136 | 75 |
--button1 "OK" |
wenzelm@29136 | 76 |
fi |
wenzelm@29136 | 77 |
|
wenzelm@29136 | 78 |
rm -f "$OUTPUT" |
wenzelm@29136 | 79 |
|
wenzelm@29136 | 80 |
exit "$RC" |