Admin/MacOS/App1/script
author wenzelm
Wed, 09 Jan 2013 18:35:51 +0100
changeset 51807 b7e38c13d87b
parent 49710 b5d7a35bdd6a
child 51820 69439c9defec
permissions -rw-r--r--
eliminated choosefrom -- power-users may edit global defaults within script;
prefer jedit;
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@51807
    12
# global defaults
wenzelm@51807
    13
wenzelm@51807
    14
ISABELLE_TOOL="$THIS/Isabelle/bin/isabelle"
wenzelm@51807
    15
PROOFGENERAL_EMACS="$THIS/Aquamacs.app/Contents/MacOS/Aquamacs"
wenzelm@51807
    16
wenzelm@51807
    17
wenzelm@51807
    18
# environment
wenzelm@41891
    19
wenzelm@29136
    20
cd "$HOME"
wenzelm@45866
    21
if [ -x /usr/libexec/path_helper ]; then
wenzelm@45866
    22
  eval $(/usr/libexec/path_helper -s)
wenzelm@45866
    23
fi
wenzelm@29136
    24
wenzelm@41891
    25
[ -z "$LANG" ] && export LANG=en_US.UTF-8
wenzelm@41891
    26
wenzelm@29136
    27
wenzelm@29149
    28
# run interface with error feedback
wenzelm@29136
    29
wenzelm@45755
    30
ISABELLE_INTERFACE_CHOICE="$("$ISABELLE_TOOL" getenv -b ISABELLE_INTERFACE_CHOICE)"
wenzelm@45755
    31
if [ "$ISABELLE_INTERFACE_CHOICE" != emacs -a "$ISABELLE_INTERFACE_CHOICE" != jedit ]
wenzelm@45755
    32
then
wenzelm@45755
    33
  declare -a CHOICE
wenzelm@45755
    34
  CHOICE=($("$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" dropdown \
wenzelm@45755
    35
    --title Isabelle \
wenzelm@45755
    36
    --text "Which Isabelle interface?" \
wenzelm@51807
    37
    --items "Isabelle/jEdit PIDE" "Emacs / Proof General" \
wenzelm@45755
    38
    --button2 "OK, do not ask again" --button1 "OK"))
wenzelm@45755
    39
  if [ "${CHOICE[1]}" = 0 ]; then
wenzelm@51807
    40
    ISABELLE_INTERFACE_CHOICE=jedit
wenzelm@51807
    41
  else
wenzelm@45755
    42
    ISABELLE_INTERFACE_CHOICE=emacs
wenzelm@45755
    43
  fi
wenzelm@45755
    44
  if [ "${CHOICE[0]}" = 2 ]; then
wenzelm@45755
    45
    ISABELLE_HOME_USER="$("$ISABELLE_TOOL" getenv -b ISABELLE_HOME_USER)"
wenzelm@45755
    46
    mkdir -p "$ISABELLE_HOME_USER/etc"
wenzelm@45755
    47
    ( echo; echo "ISABELLE_INTERFACE_CHOICE=$ISABELLE_INTERFACE_CHOICE"; ) \
wenzelm@45755
    48
      >> "$ISABELLE_HOME_USER/etc/settings"
wenzelm@45755
    49
    "$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" ok-msgbox \
wenzelm@45755
    50
      --title Isabelle \
wenzelm@45755
    51
      --text Note \
wenzelm@45755
    52
      --informative-text "ISABELLE_INTERFACE_CHOICE stored in $ISABELLE_HOME_USER/etc/settings" \
wenzelm@45755
    53
      --no-cancel
wenzelm@45755
    54
  fi
wenzelm@45755
    55
fi
wenzelm@45755
    56
wenzelm@29136
    57
OUTPUT="/tmp/isabelle$$.out"
wenzelm@29136
    58
wenzelm@45755
    59
if [ "$ISABELLE_INTERFACE_CHOICE" = emacs ]; then
wenzelm@51807
    60
  ( "$ISABELLE_TOOL" emacs -p "$PROOFGENERAL_EMACS" "$@" ) > "$OUTPUT" 2>&1
wenzelm@45754
    61
  RC=$?
wenzelm@45754
    62
else
wenzelm@45980
    63
  ( "$ISABELLE_TOOL" jedit "$@" ) > "$OUTPUT" 2>&1
wenzelm@45754
    64
  RC=$?
wenzelm@45754
    65
fi
wenzelm@29136
    66
wenzelm@29136
    67
if [ "$RC" != 0 ]; then
wenzelm@29136
    68
  echo >> "$OUTPUT"
wenzelm@29136
    69
  echo "Return code: $RC" >> "$OUTPUT"
wenzelm@29136
    70
fi
wenzelm@29136
    71
wenzelm@29149
    72
if [ $(stat -f "%z" "$OUTPUT") != 0 ]; then
wenzelm@29136
    73
  "$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" textbox \
wenzelm@29136
    74
    --title "Isabelle" \
wenzelm@29136
    75
    --informative-text "Isabelle output" \
wenzelm@29136
    76
    --text-from-file "$OUTPUT" \
wenzelm@29136
    77
    --button1 "OK"
wenzelm@29136
    78
fi
wenzelm@29136
    79
wenzelm@29136
    80
rm -f "$OUTPUT"
wenzelm@29136
    81
wenzelm@29136
    82
exit "$RC"