lib/scripts/isa-emacs
changeset 2939 73837efaf71b
parent 2600 be48eff459e9
child 2947 abca00c27841
equal deleted inserted replaced
2938:d5e8b19a7765 2939:73837efaf71b
     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