Admin/MacOS/App1/script
author wenzelm
Sat, 19 Jan 2013 12:53:13 +0100
changeset 50984 7c07ade3c8e0
parent 50805 69439c9defec
child 53498 05313b45a5ae
permissions -rw-r--r--
misc cleanup;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29136
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
     1
#!/bin/bash
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
     2
#
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
     3
# Author: Makarius
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
     4
#
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
     5
# Isabelle application wrapper
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
     6
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
     7
THIS="$(cd "$(dirname "$0")"; pwd)"
29149
eae45c2a6811 more sophisticated MacOS interface script (mostly for Carbon Emacs);
wenzelm
parents: 29136
diff changeset
     8
THIS_APP="$(cd "$THIS/../.."; pwd)"
eae45c2a6811 more sophisticated MacOS interface script (mostly for Carbon Emacs);
wenzelm
parents: 29136
diff changeset
     9
SUPER_APP="$(cd "$THIS/../../.."; pwd)"
29136
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    10
29173
c14c9a41f1ac PATH: /opt/local/bin is back again (required for latex etc.);
wenzelm
parents: 29149
diff changeset
    11
50792
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    12
# global defaults
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    13
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    14
ISABELLE_TOOL="$THIS/Isabelle/bin/isabelle"
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    15
PROOFGENERAL_EMACS="$THIS/Aquamacs.app/Contents/MacOS/Aquamacs"
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    16
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    17
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    18
# environment
41643
10b0d338d99e default UTF-8 locale, to work with funny base directory (e.g. Chinese);
wenzelm
parents: 41642
diff changeset
    19
29136
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    20
cd "$HOME"
44985
272e8e4e4fc7 imitate Apple in setting initial shell PATH -- especially relevant for MacTeX, MacPorts etc.;
wenzelm
parents: 44948
diff changeset
    21
if [ -x /usr/libexec/path_helper ]; then
272e8e4e4fc7 imitate Apple in setting initial shell PATH -- especially relevant for MacTeX, MacPorts etc.;
wenzelm
parents: 44948
diff changeset
    22
  eval $(/usr/libexec/path_helper -s)
272e8e4e4fc7 imitate Apple in setting initial shell PATH -- especially relevant for MacTeX, MacPorts etc.;
wenzelm
parents: 44948
diff changeset
    23
fi
29136
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    24
41643
10b0d338d99e default UTF-8 locale, to work with funny base directory (e.g. Chinese);
wenzelm
parents: 41642
diff changeset
    25
[ -z "$LANG" ] && export LANG=en_US.UTF-8
10b0d338d99e default UTF-8 locale, to work with funny base directory (e.g. Chinese);
wenzelm
parents: 41642
diff changeset
    26
29136
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    27
29149
eae45c2a6811 more sophisticated MacOS interface script (mostly for Carbon Emacs);
wenzelm
parents: 29136
diff changeset
    28
# run interface with error feedback
29136
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    29
44881
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    30
ISABELLE_INTERFACE_CHOICE="$("$ISABELLE_TOOL" getenv -b ISABELLE_INTERFACE_CHOICE)"
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    31
if [ "$ISABELLE_INTERFACE_CHOICE" != emacs -a "$ISABELLE_INTERFACE_CHOICE" != jedit ]
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    32
then
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    33
  declare -a CHOICE
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    34
  CHOICE=($("$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" dropdown \
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    35
    --title Isabelle \
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    36
    --text "Which Isabelle interface?" \
50792
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    37
    --items "Isabelle/jEdit PIDE" "Emacs / Proof General" \
44881
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    38
    --button2 "OK, do not ask again" --button1 "OK"))
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    39
  if [ "${CHOICE[1]}" = 0 ]; then
50792
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    40
    ISABELLE_INTERFACE_CHOICE=jedit
44881
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    41
  else
50792
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    42
    ISABELLE_INTERFACE_CHOICE=emacs
44881
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    43
  fi
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    44
  if [ "${CHOICE[0]}" = 2 ]; then
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    45
    ISABELLE_HOME_USER="$("$ISABELLE_TOOL" getenv -b ISABELLE_HOME_USER)"
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    46
    mkdir -p "$ISABELLE_HOME_USER/etc"
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    47
    ( echo; echo "ISABELLE_INTERFACE_CHOICE=$ISABELLE_INTERFACE_CHOICE"; ) \
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    48
      >> "$ISABELLE_HOME_USER/etc/settings"
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    49
    "$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" ok-msgbox \
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    50
      --title Isabelle \
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    51
      --text Note \
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    52
      --informative-text "ISABELLE_INTERFACE_CHOICE stored in $ISABELLE_HOME_USER/etc/settings" \
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    53
      --no-cancel
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    54
  fi
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    55
fi
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    56
29136
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    57
OUTPUT="/tmp/isabelle$$.out"
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    58
44881
ca2f585d1ebe persistent ISABELLE_INTERFACE_CHOICE;
wenzelm
parents: 44880
diff changeset
    59
if [ "$ISABELLE_INTERFACE_CHOICE" = emacs ]; then
50792
b7e38c13d87b eliminated choosefrom -- power-users may edit global defaults within script;
wenzelm
parents: 48695
diff changeset
    60
  ( "$ISABELLE_TOOL" emacs -p "$PROOFGENERAL_EMACS" "$@" ) > "$OUTPUT" 2>&1
44880
9fb612890ad9 explicit choice of interface;
wenzelm
parents: 41644
diff changeset
    61
  RC=$?
9fb612890ad9 explicit choice of interface;
wenzelm
parents: 41644
diff changeset
    62
else
50805
69439c9defec prefer system build mode in main application wrappers, to produce heaps insided distribution directory;
wenzelm
parents: 50792
diff changeset
    63
  ( "$ISABELLE_TOOL" jedit -s "$@" ) > "$OUTPUT" 2>&1
44880
9fb612890ad9 explicit choice of interface;
wenzelm
parents: 41644
diff changeset
    64
  RC=$?
9fb612890ad9 explicit choice of interface;
wenzelm
parents: 41644
diff changeset
    65
fi
29136
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    66
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    67
if [ "$RC" != 0 ]; then
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    68
  echo >> "$OUTPUT"
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    69
  echo "Return code: $RC" >> "$OUTPUT"
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    70
fi
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    71
29149
eae45c2a6811 more sophisticated MacOS interface script (mostly for Carbon Emacs);
wenzelm
parents: 29136
diff changeset
    72
if [ $(stat -f "%z" "$OUTPUT") != 0 ]; then
29136
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    73
  "$THIS/CocoaDialog.app/Contents/MacOS/CocoaDialog" textbox \
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    74
    --title "Isabelle" \
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    75
    --informative-text "Isabelle output" \
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    76
    --text-from-file "$OUTPUT" \
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    77
    --button1 "OK"
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    78
fi
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    79
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    80
rm -f "$OUTPUT"
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    81
de5b29c25af9 basic setup for MacOS application bundle;
wenzelm
parents:
diff changeset
    82
exit "$RC"