.emacs-autogen.sh
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sun, 20 Mar 2011 23:26:45 +0200
changeset 604 9084d12d924d
parent 579 b71e74cfe817
child 622 596406094fd1
permissions -rwxr-xr-x
Fix mode name for elisp files.

#!/bin/sh

if [ -z "$1" ]; then
  echo "Where config file?"
  exit 1
fi

cfg=$1

# Set host_os:
#   windows, linux, unknown
# host_distro:
#   cygwin, debian, unknown
check_platform() {
  case `uname -s` in
    CYGWIN_NT-*)
      host_os=windows
      host_distro=cygwin
      ;;
    Linux)
      host_os=linux
      if [ -e /etc/debian_version ]; then
        host_distro=debian
      else
        host_distro=unknown
      fi
      ;;
    *)
      host_os=unknown
      ;;
  esac
}

check_ispell() {
  command -v ispell >/dev/null && return 0 || return 1
}

check_aspell() {
  command -v aspell >/dev/null && return 0 || return 1
}

print_ispell() {
  echo '(setq-default ispell-program-name "ispell")'
  case $host_distro in
    debian)
      echo '(setq-default ispell-local-dictionary "british")'
      ;;
    unknown)
      echo '(setq-default ispell-local-dictionary "default")'
      ;;
  esac
}

print_aspell() {
  echo '(setq-default ispell-program-name "aspell")'
  echo '(setq-default ispell-local-dictionary "en")'
}

check_speller() {
  echo
  echo ';; ================================================================'
  echo ';; Speller settings (check_speller).'
  echo
  check_ispell
  ispell_present=$?
  check_aspell
  aspell_present=$?
  case $host_os in
    windows)
      case $host_distro in
        cygwin)
          if [ $aspell_present = 0 ]; then
            print_aspell
          elif [ $ispell_present = 0 ]; then
            print_ispell
          fi
          ;;
      esac
      ;;
    linux)
      case $host_distro in
        debian)
          if [ $ispell_present = 0 ]; then
            print_ispell
          elif [ $aspell_present = 0 ]; then
            print_aspell
          fi
          ;;
      esac
      ;;
    *)
      :
      ;;
  esac
}

# Remove old auto-generated config and fill it by standard header.
echo ";; -*- mode: emacs-lisp; coding: utf-8; fill-column: 78 -*-
;;
;; For load order see README.
" >$cfg

check_platform
check_speller >>$cfg