--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/MacOS/App1/script Fri Jul 03 16:10:49 2009 +0200
@@ -0,0 +1,78 @@
+#!/bin/bash
+#
+# Author: Makarius
+#
+# Isabelle application wrapper
+
+THIS="$(cd "$(dirname "$0")"; pwd)"
+THIS_APP="$(cd "$THIS/../.."; pwd)"
+SUPER_APP="$(cd "$THIS/../../.."; pwd)"
+
+
+# sane environment defaults
+cd "$HOME"
+PATH="$PATH:/opt/local/bin"
+
+
+# settings support
+
+function choosefrom ()
+{
+ local RESULT=""
+ local FILE=""
+
+ for FILE in "$@"
+ do
+ [ -z "$RESULT" -a -e "$FILE" ] && RESULT="$FILE"
+ done
+
+ [ -z "$RESULT" ] && RESULT="$FILE"
+ echo "$RESULT"
+}
+
+
+# Isabelle
+
+ISABELLE_TOOL="$(choosefrom \
+ "$THIS/Isabelle/bin/isabelle" \
+ "$SUPER_APP/Isabelle/bin/isabelle" \
+ "$HOME/bin/isabelle" \
+ isabelle)"
+
+
+# Proof General / Emacs
+
+PROOFGENERAL_EMACS="$(choosefrom \
+ "$THIS/Emacs.app/Contents/MacOS/Emacs" \
+ "$SUPER_APP/Emacs.app/Contents/MacOS/Emacs" \
+ /Applications/Emacs.app/Contents/MacOS/Emacs \
+ "")"
+
+if [ -n "$PROOFGENERAL_EMACS" ]; then
+ EMACS_OPTIONS="-p $PROOFGENERAL_EMACS"
+fi
+
+
+# run interface with error feedback
+
+OUTPUT="/tmp/isabelle$$.out"
+
+( "$ISABELLE_TOOL" emacs $EMACS_OPTIONS "$@" ) > "$OUTPUT" 2>&1
+RC=$?
+
+if [ "$RC" != 0 ]; then
+ echo >> "$OUTPUT"
+ echo "Return code: $RC" >> "$OUTPUT"
+fi
+
+if [ $(stat -f "%z" "$OUTPUT") != 0 ]; then
+ "$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" textbox \
+ --title "Isabelle" \
+ --informative-text "Isabelle output" \
+ --text-from-file "$OUTPUT" \
+ --button1 "OK"
+fi
+
+rm -f "$OUTPUT"
+
+exit "$RC"