.emacs-autogen.sh
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sun, 27 Nov 2022 21:17:26 +0200
changeset 1762 a62145ae4fbd
parent 1446 78d0fef31a4b
child 1763 bcd7574bc9c3
permissions -rwxr-xr-x
Added a shortcut for opening BLOG.rst.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
702
0617020b53d8 Fix shebang for FreeBSD.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 696
diff changeset
     1
#!/usr/bin/env bash
386
3efe37437745 Explore environment for abilities and tup config in ~/.emacs-autogen.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
3efe37437745 Explore environment for abilities and tup config in ~/.emacs-autogen.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
if [ -z "$1" ]; then
3efe37437745 Explore environment for abilities and tup config in ~/.emacs-autogen.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
  echo "Where config file?"
3efe37437745 Explore environment for abilities and tup config in ~/.emacs-autogen.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
  exit 1
3efe37437745 Explore environment for abilities and tup config in ~/.emacs-autogen.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
fi
3efe37437745 Explore environment for abilities and tup config in ~/.emacs-autogen.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
3efe37437745 Explore environment for abilities and tup config in ~/.emacs-autogen.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
cfg=$1
3efe37437745 Explore environment for abilities and tup config in ~/.emacs-autogen.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    10
# Set host_os:
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    11
#   windows, linux, unknown
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    12
# host_distro:
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    13
#   cygwin, debian, unknown
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    14
check_platform() {
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    15
  case `uname -s` in
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    16
    CYGWIN_NT-*)
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    17
      host_os=windows
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    18
      host_distro=cygwin
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    19
      ;;
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    20
    Linux)
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    21
      host_os=linux
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    22
      if [ -e /etc/debian_version ]; then
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    23
        host_distro=debian
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    24
      else
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    25
        host_distro=unknown
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    26
      fi
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    27
      ;;
622
596406094fd1 Port to Mac OS X console Emacs 22.1.1.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 604
diff changeset
    28
    Darwin)
596406094fd1 Port to Mac OS X console Emacs 22.1.1.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 604
diff changeset
    29
      host_os=darwin
596406094fd1 Port to Mac OS X console Emacs 22.1.1.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 604
diff changeset
    30
      ;;
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    31
    *)
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    32
      host_os=unknown
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    33
      ;;
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    34
  esac
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    35
}
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    36
694
9c9c558e8a92 Add 'print_header'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 693
diff changeset
    37
print_header() {
9c9c558e8a92 Add 'print_header'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 693
diff changeset
    38
  echo
9c9c558e8a92 Add 'print_header'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 693
diff changeset
    39
  echo ';; ================================================================'
9c9c558e8a92 Add 'print_header'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 693
diff changeset
    40
  echo ";; ${FUNCNAME[1]}."
9c9c558e8a92 Add 'print_header'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 693
diff changeset
    41
  echo
9c9c558e8a92 Add 'print_header'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 693
diff changeset
    42
}
9c9c558e8a92 Add 'print_header'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 693
diff changeset
    43
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    44
check_ispell() {
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    45
  command -v ispell >/dev/null && return 0 || return 1
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    46
}
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    47
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    48
check_aspell() {
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    49
  command -v aspell >/dev/null && return 0 || return 1
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    50
}
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    51
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    52
print_ispell() {
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    53
  echo '(setq-default ispell-program-name "ispell")'
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    54
  case $host_distro in
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    55
    debian)
1446
78d0fef31a4b Use American English variant for spell checking. Prefer aspell to ispell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1238
diff changeset
    56
      echo '(setq-default ispell-local-dictionary "american")'
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    57
      ;;
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    58
    unknown)
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    59
      echo '(setq-default ispell-local-dictionary "default")'
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    60
      ;;
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    61
  esac
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    62
}
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    63
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    64
print_aspell() {
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    65
  echo '(setq-default ispell-program-name "aspell")'
1446
78d0fef31a4b Use American English variant for spell checking. Prefer aspell to ispell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1238
diff changeset
    66
  echo '(setq-default ispell-local-dictionary "en_US")'
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    67
}
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    68
694
9c9c558e8a92 Add 'print_header'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 693
diff changeset
    69
print_speller() {
9c9c558e8a92 Add 'print_header'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 693
diff changeset
    70
  print_header
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    71
  check_ispell
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    72
  ispell_present=$?
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    73
  check_aspell
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    74
  aspell_present=$?
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    75
  case $host_os in
1446
78d0fef31a4b Use American English variant for spell checking. Prefer aspell to ispell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1238
diff changeset
    76
    windows|linux)
78d0fef31a4b Use American English variant for spell checking. Prefer aspell to ispell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1238
diff changeset
    77
      if [ $aspell_present = 0 ]; then
78d0fef31a4b Use American English variant for spell checking. Prefer aspell to ispell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1238
diff changeset
    78
          print_aspell
78d0fef31a4b Use American English variant for spell checking. Prefer aspell to ispell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1238
diff changeset
    79
      elif [ $ispell_present = 0 ]; then
78d0fef31a4b Use American English variant for spell checking. Prefer aspell to ispell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1238
diff changeset
    80
          print_ispell
78d0fef31a4b Use American English variant for spell checking. Prefer aspell to ispell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1238
diff changeset
    81
      fi
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    82
      ;;
622
596406094fd1 Port to Mac OS X console Emacs 22.1.1.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 604
diff changeset
    83
    darwin)
596406094fd1 Port to Mac OS X console Emacs 22.1.1.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 604
diff changeset
    84
      print_aspell
596406094fd1 Port to Mac OS X console Emacs 22.1.1.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 604
diff changeset
    85
      ;;
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    86
    *)
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    87
      :
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    88
      ;;
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    89
  esac
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    90
}
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
    91
693
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
    92
print_man() {
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
    93
  print_header
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
    94
  if man -a man >/dev/null 2>&1; then
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
    95
    echo '(setq Man-switches "-a")'
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
    96
  else
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
    97
    echo '(setq Man-switches "")'
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
    98
  fi
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
    99
}
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
   100
1238
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   101
print_emacs_sources_dir() {
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   102
  print_header
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   103
  if [[ -d ~/devel/emacs/emacs/src ]]; then
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   104
    echo '(setq find-function-C-source-directory "~/devel/emacs/emacs/src")'
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   105
  else
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   106
    ls ~/devel/emacs/src/emacs.c ~/devel/emacs/emacs*/src/emacs.c 2>/dev/null | {
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   107
      read f
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   108
      printf '(setq find-function-C-source-directory "%s")' ${f%emacs.c}
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   109
    }
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   110
  fi
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   111
}
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   112
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   113
cat >$cfg <<EOF
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   114
;; -*- mode: emacs-lisp; coding: utf-8; fill-column: 78 -*-
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
   115
;;
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
   116
;; For load order see README.
1238
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   117
EOF
579
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
   118
b71e74cfe817 Improve checker architecture.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 575
diff changeset
   119
check_platform
1238
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   120
{
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   121
  print_speller
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   122
  print_man
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   123
  print_emacs_sources_dir
c9e507cde2b7 Detect Emacs sources for 'find-function-C-source-directory'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 702
diff changeset
   124
} >>$cfg
693
0462d1dcbe75 Add '-a' option to Man-switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 622
diff changeset
   125