Emacs, aspell: Make Emacs use aspell; configure aspell for use.
[profile] / setup
diff --git a/setup b/setup
index 39456f6..856c50b 100755 (executable)
--- a/setup
+++ b/setup
@@ -2,16 +2,21 @@
 
 set -e
 
+###--------------------------------------------------------------------------
+### Basic setup.
+
 umask 002
 
 sub=
 mkdir -p $HOME$sub
 
-: ${REPO=http://guvnor.distorted.org.uk/ftp/pub/mdw/profile}
+: ${REPO=http://ftp.distorted.org.uk/ftp/pub/mdw/profile}
 
 export PATH=/usr/local/bin:$HOME$sub/bin:/usr/bin:/usr/ccs/bin:/bin
 
-### Sort out command line
+###--------------------------------------------------------------------------
+### Sort out command line.
+
 xstuff= false=
 while [ $# -gt 0 ]; do
   case "$1" in
@@ -24,10 +29,13 @@ while [ $# -gt 0 ]; do
   shift
 done
 
-### Find out where I am
+###--------------------------------------------------------------------------
+### Environment autoconfiguration.
+
+## Find out where I am
 here=$(pwd)
 
-### Suss out how to print things
+## Suss out how to print things
 out=$(echo -n "foo"; echo "bar")
 if [ "$out" = "foobar" ]; then
   echon="echo -n"
@@ -37,20 +45,7 @@ else
   echoc='\c'
 fi
 
-### Create the necessary directories
-echo "Creating directories..."
-for i in bin lib/emacs src; do
-  $echon "  $i:$echoc"
-  if [ -d $HOME$sub/$i ]; then
-    echo " already exists."
-  else
-    mkdir -p $HOME$sub/$i
-    echo " done."
-  fi
-done
-echo "  all done."
-
-### Find out how to fetch things over the net
+## Find out how to fetch things over the net
 $echon "Finding URL fetcher:$echoc"
 if curl >/dev/null 2>&1 --version || [ $? -eq 2 ]; then
   GETURL="curl -fs -o"
@@ -64,13 +59,28 @@ else
   exit 1
 fi
 
-### Install necessary things
+###--------------------------------------------------------------------------
+### Create the necessary directories.
+
+echo "Creating directories..."
+for i in bin lib/emacs src; do
+  $echon "  $i:$echoc"
+  if [ -d $HOME$sub/$i ]; then
+    echo " already exists."
+  else
+    mkdir -p $HOME$sub/$i
+    echo " done."
+  fi
+done
+echo " all done."
+
+###--------------------------------------------------------------------------
+### Install necessary things.
+
 echo "Installing useful scripts..."
 
 scripts="
   lesspipe.sh start-ssh-agent svnwrap"
-[ "$xstuff" ] && scripts="$scripts
-  xrun"
 for script in $scripts; do
   $echon "  $script:$echoc"
   found=
@@ -90,17 +100,18 @@ for script in $scripts; do
   fi
 done
 
-echo "  all done."
+echo " all done."
+
+###--------------------------------------------------------------------------
+### Install some more complicated programs.
 
-### Install some more complicated programs
 echo "Installing packages..."
 systems="
-  mLib:2.0.3:mLib-config
+  mlib:2.0.4:crc-mktab
   chkpath:1.1.0:tmpdir
 "
 [ "$xstuff" ] && systems="$systems
-  mgLib:1.1.0:mgLib-config
-  xtoys:1.3.0:xscsize
+  xtoys:1.4.0:xatom
 "
 for system in $systems; do
   set -- $(echo $system | tr : ' ')
@@ -129,9 +140,11 @@ for system in $systems; do
     )
   fi
 done
-echo "  all done."
+echo " all done."
+
+###--------------------------------------------------------------------------
+### Install global configuration.
 
-### Install global configuration
 echo -n "Installing dotfile configuration:"
 if [ -f $HOME$sub/.mdw.conf ]; then
   echo " already installed."
@@ -140,21 +153,31 @@ else
   echo " done."
 fi
 
-### Symlink the various dotfiles into place
-dotfiles=" 
-  bash_profile bash_logout bashrc
-  emacs emacs-calc 
-  vm mailrc
+## Symlink the various dotfiles into place
+dotfiles="
+  bash_profile bash_logout bashrc inputrc bash_completion
+  emacs emacs-calc vm
+  vimrc mg
+  mailrc signature
+  cgrc tigrc
+  gdbinit
+  guile
+  aspell.conf
   lisp-init.lisp:.cmucl-init.lisp
     lisp-init.lisp:.sbclrc
     lisp-init.lisp:.clisprc.lisp
-  dircolors screenrc cvsrc"
+    lisp-init.lisp:.eclrc
+  dircolors colordiffrc screenrc cvsrc indent.pro"
 [ "$xstuff" ] && dotfiles="$dotfiles
-  xinitrc xsession Xdefaults
+  xinitrc xsession Xdefaults vncrc vncsession
+  putty-defaults:.putty/sessions/Default%20Settings
   eterm-theme.cfg:.Eterm/themes/Eterm/theme.cfg
   e-keybindings.cfg:.enlightenment/keybindings.cfg
-  jue-peek.jpg:.enlightenment/backgrounds/jue-peek.jpg"
-mkdir -p $HOME/test
+  evnc-keybindings.cfg:.enlightenment-vnc/keybindings.cfg
+  e16-bindings:.e16/bindings.cfg
+  e16-config:.e16/e_config--1.0.cfg
+  jue-peek.jpg:.enlightenment/backgrounds/jue-peek.jpg
+  jue-peek.jpg:.e16/backgrounds/jue-peek.jpg"
 echo "Installing dotfiles..."
 for d in $dotfiles; do
   target=.$d
@@ -168,12 +191,49 @@ for d in $dotfiles; do
   mv $ft.new $ft
   echo "  $target"
 done
-echo "  all done."
+echo " all done."
+
+###--------------------------------------------------------------------------
+### Process the Git configuration.
+
+echo -n "Installing Git configuration:"
+sed "
+1i\
+### generated by $here/setup; do not edit!\
+
+/@releasekey@/ s::$(./mdw-conf release-key 481334C2):g
+/@gitignore@/ s::$(./mdw-conf gitignore $here/gitignore):g
+" gitconfig >$HOME/.gitconfig.new
+mv $HOME/.gitconfig.new $HOME/.gitconfig
+echo " done."
+
+###--------------------------------------------------------------------------
+### Install useful scripts included in this package.
+
+scripts="
+  mdw-editor
+  mdw-conf
+  movemail-hack
+  emerge-hack"
+[ "$xstuff" ] && scripts="$scripts
+  xrun
+  xshutdown"
+echo "Installing scripts..."
+mkdir -p $HOME$sub/bin
+for s in $scripts; do
+  ft=$HOME$sub/bin/$s
+  ln -s $here/$s $ft.new
+  mv $ft.new $ft
+  echo "  $s"
+done
+echo " all done."
+
+###--------------------------------------------------------------------------
+### Set up the Emacs config.
 
-### Set up the Emacs config
 $echon "Finding a suitable emacs:$echoc"
 emacs=no
-for i in emacs21 emacs; do
+for i in emacs22 emacs21 emacs; do
   if type -p >/dev/null $i; then
     emacs=$i
     break
@@ -187,25 +247,30 @@ else
 fi
 
 echo "Installing Emacs packages..."
-for elib in make-regexp; do
+emacspkg="
+  make-regexp
+  git git-blame vc-git stgit
+  quilt"
+for elib in $emacspkg; do
   $echon "  $elib:$echoc"
   if $false $emacs >/dev/null 2>&1 --no-site-file --batch --eval '
-       (setq load-path (nconc load-path (list "~/lib/emacs")))
-       (kill-emacs (condition-case nil
-                      (progn (load-library "make-regexp") 0)
-                    (error 1)))'; then
+       (progn
+        (setq load-path (nconc load-path (list "~/lib/emacs")))
+        (kill-emacs (condition-case nil
+                        (progn (load-library "'"$elib"'") 0)
+                      (error 1))))'; then
     echo " already installed."
   else
     $echon " downloading$echoc"
-    $GETURL $HOME$sub/lib/emacs/make-regexp.el $REPO/make-regexp.el
+    $GETURL $HOME$sub/lib/emacs/$elib.el $REPO/$elib.el
     $echon " compiling$echoc"
     (cd $HOME$sub/lib/emacs;
       $emacs >/dev/null 2>&1 --no-site-file --batch \
-       --eval '(byte-compile-file "make-regexp.el")')
+       --eval '(byte-compile-file "'"$elib.el"'")')
     echo " done."
   fi
 done
-echo "  all done."
+echo " all done."
 
 $echon "Setting up Emacs configuration:$echoc"
 $echon " linking$echoc"
@@ -218,3 +283,5 @@ done
 $echon " compiling$echoc"
 make >/dev/null 2>&1 -C $HOME$sub/lib/emacs EMACS=$emacs
 echo " done."
+
+###----- That's all, folks --------------------------------------------------