Admin/MacOS/App1/script
author wenzelm
Sat Nov 28 15:54:25 2009 +0100 (2009-11-28)
changeset 33912 a5e6e849a0d8
parent 31924 47b59620f37f
child 41610 9f99196ebd9f
permissions -rwxr-xr-x
allow spaces within PROOFGENERAL_EMACS;
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@29149
    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@29136
    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@33912
    51
declare -a EMACS_OPTIONS=()
wenzelm@29149
    52
if [ -n "$PROOFGENERAL_EMACS" ]; then
wenzelm@33912
    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@33912
    61
( "$ISABELLE_TOOL" emacs "${EMACS_OPTIONS[@]}" "$@" ) > "$OUTPUT" 2>&1
wenzelm@29136
    62
RC=$?
wenzelm@29136
    63
wenzelm@29136
    64
if [ "$RC" != 0 ]; then
wenzelm@29136
    65
  echo >> "$OUTPUT"
wenzelm@29136
    66
  echo "Return code: $RC" >> "$OUTPUT"
wenzelm@29136
    67
fi
wenzelm@29136
    68
wenzelm@29149
    69
if [ $(stat -f "%z" "$OUTPUT") != 0 ]; then
wenzelm@29136
    70
  "$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" textbox \
wenzelm@29136
    71
    --title "Isabelle" \
wenzelm@29136
    72
    --informative-text "Isabelle output" \
wenzelm@29136
    73
    --text-from-file "$OUTPUT" \
wenzelm@29136
    74
    --button1 "OK"
wenzelm@29136
    75
fi
wenzelm@29136
    76
wenzelm@29136
    77
rm -f "$OUTPUT"
wenzelm@29136
    78
wenzelm@29136
    79
exit "$RC"