Admin/MacOS/script
author wenzelm
Tue, 14 Apr 2009 18:18:15 +0200
changeset 30893 b310beb36645
parent 30891 28c7f7ba9f13
permissions -rwxr-xr-x
more robust handling of emacs options -- this is not necessarily an Isabelle process environment yet;
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@29149
    51
if [ -n "$PROOFGENERAL_EMACS" ]; then
wenzelm@30893
    52
  EMACS_OPTIONS="-p $PROOFGENERAL_EMACS"
wenzelm@29136
    53
fi
wenzelm@29136
    54
wenzelm@29136
    55
wenzelm@29149
    56
# run interface with error feedback
wenzelm@29136
    57
wenzelm@29136
    58
OUTPUT="/tmp/isabelle$$.out"
wenzelm@29136
    59
wenzelm@30893
    60
( "$ISABELLE_TOOL" emacs $EMACS_OPTIONS "$@" ) > "$OUTPUT" 2>&1
wenzelm@29136
    61
RC=$?
wenzelm@29136
    62
wenzelm@29136
    63
if [ "$RC" != 0 ]; then
wenzelm@29136
    64
  echo >> "$OUTPUT"
wenzelm@29136
    65
  echo "Return code: $RC" >> "$OUTPUT"
wenzelm@29136
    66
fi
wenzelm@29136
    67
wenzelm@29149
    68
if [ $(stat -f "%z" "$OUTPUT") != 0 ]; then
wenzelm@29136
    69
  "$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" textbox \
wenzelm@29136
    70
    --title "Isabelle" \
wenzelm@29136
    71
    --informative-text "Isabelle output" \
wenzelm@29136
    72
    --text-from-file "$OUTPUT" \
wenzelm@29136
    73
    --button1 "OK"
wenzelm@29136
    74
fi
wenzelm@29136
    75
wenzelm@29136
    76
rm -f "$OUTPUT"
wenzelm@29136
    77
wenzelm@29136
    78
exit "$RC"