equal
deleted
inserted
replaced
1 #!/bin/bash -norc |
1 #!/bin/bash -norc |
2 # |
2 # |
3 # $Id$ |
3 # $Id$ |
4 # |
4 # |
5 # Emacs / Isamode interface. |
5 # GNU Emacs Isamode interface. |
6 # |
|
7 # TODO: isabelle fonts |
|
8 |
6 |
9 |
7 |
10 ## diagnostics |
8 ## diagnostics |
|
9 |
|
10 PRG=$(basename $0) |
|
11 |
|
12 function usage() |
|
13 { |
|
14 echo |
|
15 echo "Usage: $PRG [OPTIONS]" |
|
16 echo |
|
17 echo " Options are:" |
|
18 echo " -g GEOM main window geometry (default 80x20)" |
|
19 echo |
|
20 echo " Starts GNU Emacs and Isamode." |
|
21 echo |
|
22 exit 1 |
|
23 } |
11 |
24 |
12 function fail() |
25 function fail() |
13 { |
26 { |
14 echo "$1" >&2 |
27 echo "$1" >&2 |
15 exit 2 |
28 exit 2 |
16 } |
29 } |
17 |
30 |
18 |
31 |
|
32 ## process command line |
|
33 |
|
34 # options |
|
35 |
|
36 MAINGEOM="80x20" |
|
37 |
|
38 while getopts "g:" OPT |
|
39 do |
|
40 case "$OPT" in |
|
41 g) |
|
42 MAINGEOM="$OPTARG" |
|
43 ;; |
|
44 \?) |
|
45 usage |
|
46 ;; |
|
47 esac |
|
48 done |
|
49 |
|
50 shift $(($OPTIND - 1)) |
|
51 |
|
52 |
|
53 # args |
|
54 |
|
55 [ $# != 0 ] && usage |
|
56 |
|
57 |
19 ## main |
58 ## main |
20 |
59 |
21 if [ -f "$ISABELLE_HOME_USER/etc/isa-settings.el" ]; then |
60 # prepare startup file |
22 USER_SETTINGS="--load $ISABELLE_HOME_USER/etc/isa-settings.el" |
|
23 else |
|
24 USER_SETTINGS="" |
|
25 fi |
|
26 |
61 |
27 exec emacs -name "isabelle" \ |
62 STARTUP=/tmp/isa-start$$.el |
28 --no-init-file "$@" \ |
63 |
29 --load "$ISAMODE_HOME/elisp/isa-site.el" \ |
64 { |
30 $USER_SETTINGS \ |
65 echo "(load \"$ISAMODE_HOME/elisp/isa-site.el\")" |
31 --load $HOME/.emacs \ |
66 echo |
32 --funcall isabelle |
67 |
|
68 echo "(setq isa-logic-paths" |
|
69 echo -n "'(" |
|
70 for D in $(echo $ISABELLE_PATH | tr : " ") |
|
71 do |
|
72 DIR="$D/$ML_SYSTEM-$PLATFORM" |
|
73 [ -d $DIR ] && echo "\"$DIR\"" |
|
74 done |
|
75 echo "\"$ISAMODE_HOME/ruletables\"))" |
|
76 echo |
|
77 |
|
78 DOC=$(echo $ISABELLE_DOCS | cut -f1 -d:) #first doc dir only |
|
79 echo "(setq isa-manual-path \"$DOC\")" |
|
80 echo |
|
81 |
|
82 for FILE in ~/.emacs "$ISABELLE_HOME/etc/isa-settings.el" \ |
|
83 "$ISABELLE_HOME_USER/etc/isa-settings.el" |
|
84 do |
|
85 [ -f "$FILE" ] && echo "(load \"$FILE\")" |
|
86 done |
|
87 echo |
|
88 |
|
89 echo "(isabelle)" |
|
90 } >$STARTUP |
|
91 |
|
92 |
|
93 # run it! |
|
94 |
|
95 $ISATOOL installfonts |
|
96 |
|
97 emacs -name "Isabelle" \ |
|
98 -fn isabelle14 -geometry $MAINGEOM \ |
|
99 --no-init-file \ |
|
100 --load $STARTUP |
|
101 |
|
102 rm $STARTUP |