.emacs-autogen.sh
author Oleksandr Gavenko <gavenkoa@gmail.com>
Tue, 02 Aug 2011 17:52:09 +0300
changeset 673 3f9a497c4ff7
parent 622 596406094fd1
child 693 0462d1dcbe75
permissions -rwxr-xr-x
Automated merge with file:///cygdrive/d/srv/hg-home/dot-emacs

#!/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
      ;;
    Darwin)
      host_os=darwin
      ;;
    *)
      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
      ;;
    darwin)
      print_aspell
      ;;
    *)
      :
      ;;
  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