Merge branch 'master' of git+ssh://ponder.ncipher.com/~mwooding/etc/profile
[profile] / setup
diff --git a/setup b/setup
index 8ca3066..183ea64 100755 (executable)
--- a/setup
+++ b/setup
@@ -2,6 +2,9 @@
 
 set -e
 
+###--------------------------------------------------------------------------
+### Basic setup.
+
 umask 002
 
 sub=
@@ -11,7 +14,9 @@ mkdir -p $HOME$sub
 
 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,47 +59,35 @@ else
   exit 1
 fi
 
-### Install necessary things
-echo "Installing useful scripts..."
+###--------------------------------------------------------------------------
+### Create the necessary directories.
 
-scripts="
-  lesspipe.sh start-ssh-agent svnwrap movemail-hack"
-[ "$xstuff" ] && scripts="$scripts
-  xrun"
-for script in $scripts; do
-  $echon "  $script:$echoc"
-  found=
-  for p in /bin /usr/bin /usr/local/bin $(echo $PATH | tr : ' '); do
-    if $false [ -x $p/$script ]; then
-      found=t
-      break
-    fi
-  done
-  if [ "$found" ]; then
-    echo " already installed."
+echo "Creating directories..."
+for i in bin lib/emacs src; do
+  $echon "  $i:$echoc"
+  if [ -d $HOME$sub/$i ]; then
+    echo " already exists."
   else
-    $echon " downloading$echoc"
-    $GETURL $HOME$sub/bin/$script $REPO/$script
-    chmod +x $HOME$sub/bin/$script
+    mkdir -p $HOME$sub/$i
     echo " done."
   fi
 done
-
 echo " all done."
 
-### Install some more complicated programs
+###--------------------------------------------------------------------------
+### Install some more complicated programs.
+
 echo "Installing packages..."
 systems="
-  mLib:2.0.3:mLib-config
-  chkpath:1.1.0:tmpdir
+  mlib:crc-mktab
+  checkpath:tmpdir
 "
 [ "$xstuff" ] && systems="$systems
-  mgLib:1.1.0:mgLib-config
-  xtoys:1.3.0:xscsize
+  xtoys:xatom
 "
 for system in $systems; do
   set -- $(echo $system | tr : ' ')
-  sys=$1 ver=$2 prog=$3
+  sys=$1 prog=$2
   $echon "  $sys:$echoc"
   if $false $prog >/dev/null 2>&1 --version; then
     echo " already installed."
@@ -112,12 +95,13 @@ for system in $systems; do
     ( set -e
       $echon " downloading$echoc"
       cd $HOME$sub/src
-      rm -rf $sys-$ver.tar.gz $sys-$ver
-      $GETURL $sys-$ver.tar.gz $REPO/$sys-$ver.tar.gz
+      rm -rf $sys.tar.gz $sys-$ver
+      $GETURL $sys.tar.gz $REPO/$sys.tar.gz
       $echon " unpacking$echoc"
-      gzip -cd $sys-$ver.tar.gz | tar xf -
+      dir=$(gzip -cd $sys.tar.gz | tar tf - | head -1)
+      gzip -cd $sys.tar.gz | tar xf -
       $echon " configuring$echoc"
-      cd $sys-$ver
+      cd $dir
       mkdir build
       cd build
       ../configure --prefix=$HOME$sub >>buildlog 2>&1
@@ -131,7 +115,9 @@ for system in $systems; do
 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,14 +126,17 @@ else
   echo " done."
 fi
 
-### Symlink the various dotfiles into place
+## Symlink the various dotfiles into place
 dotfiles="
   bash_profile bash_logout bashrc inputrc bash_completion
   emacs emacs-calc vm
   vimrc mg
   mailrc signature
-  gitconfig cgrc tigrc
+  cgrc tigrc
   gdbinit
+  guile
+  toprc
+  aspell.conf
   lisp-init.lisp:.cmucl-init.lisp
     lisp-init.lisp:.sbclrc
     lisp-init.lisp:.clisprc.lisp
@@ -156,6 +145,7 @@ dotfiles="
 [ "$xstuff" ] && dotfiles="$dotfiles
   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
   evnc-keybindings.cfg:.enlightenment-vnc/keybindings.cfg
   e16-bindings:.e16/bindings.cfg
@@ -177,10 +167,35 @@ for d in $dotfiles; do
 done
 echo " all done."
 
-### Install useful scripts included in this package
+###--------------------------------------------------------------------------
+### 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
-  emerge-hack"
+  mdw-conf
+  movemail-hack
+  emerge-hack
+  lesspipe.sh
+  start-ssh-agent
+  svnwrap
+  hyperspec"
+[ "$xstuff" ] && scripts="$scripts
+  xrun
+  xshutdown"
 echo "Installing scripts..."
 mkdir -p $HOME$sub/bin
 for s in $scripts; do
@@ -191,7 +206,9 @@ for s in $scripts; do
 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 emacs22 emacs21 emacs; do
@@ -210,6 +227,7 @@ fi
 echo "Installing Emacs packages..."
 emacspkg="
   make-regexp
+  ew-hols
   git git-blame vc-git stgit
   quilt"
 for elib in $emacspkg; do
@@ -244,3 +262,5 @@ done
 $echon " compiling$echoc"
 make >/dev/null 2>&1 -C $HOME$sub/lib/emacs EMACS=$emacs
 echo " done."
+
+###----- That's all, folks --------------------------------------------------