X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/739bccbf5633f334556603fdd7396d6e8375fb0d..852cd5fbddafbfed93df4cda8ba366b14922e95d:/setup diff --git a/setup b/setup index d7dd890..ec629c4 100755 --- a/setup +++ b/setup @@ -1,4 +1,4 @@ -#! /bin/sh +#! /bin/bash set -e @@ -7,7 +7,7 @@ umask 002 sub= mkdir -p $HOME$sub -: ${REPO=http://guvnor.distorted.org.uk/ftp/pub/mdw} +: ${REPO=http://guvnor.distorted.org.uk/ftp/pub/mdw/profile} export PATH=/usr/local/bin:$HOME$sub/bin:/usr/bin:/usr/ccs/bin:/bin @@ -48,7 +48,7 @@ for i in bin lib/emacs src; do echo " done." fi done -echo " all done." +echo " all done." ### Find out how to fetch things over the net $echon "Finding URL fetcher:$echoc" @@ -67,7 +67,11 @@ fi ### Install necessary things echo "Installing useful scripts..." -for script in lesspipe.sh start-ssh-agent svnwrap; do +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 @@ -86,7 +90,7 @@ for script in lesspipe.sh start-ssh-agent svnwrap; do fi done -echo " all done." +echo " all done." ### Install some more complicated programs echo "Installing packages..." @@ -125,19 +129,33 @@ for system in $systems; do ) fi done -echo " all done." +echo " all done." + +### Install global configuration +echo -n "Installing dotfile configuration:" +if [ -f $HOME$sub/.mdw.conf ]; then + echo " already installed." +else + cp mdw.conf $HOME$sub/.mdw.conf + echo " done." +fi ### Symlink the various dotfiles into place -dotfiles=" - bash_profile bash_logout bashrc - emacs emacs-calc - vm mailrc - cmucl-init.lisp clisprc.lisp sbclrc - dircolors screenrc" +dotfiles=" + bash_profile bash_logout bashrc inputrc bash_completion + emacs emacs-calc + vm mailrc signature + gitconfig cgrc stgitrc tigrc + lisp-init.lisp:.cmucl-init.lisp + lisp-init.lisp:.sbclrc + lisp-init.lisp:.clisprc.lisp + lisp-init.lisp:.eclrc + dircolors colordiffrc screenrc cvsrc indent.pro" [ "$xstuff" ] && dotfiles="$dotfiles - xinitrc xsession Xdefaults + xinitrc xsession Xdefaults vncrc vncsession eterm-theme.cfg:.Eterm/themes/Eterm/theme.cfg e-keybindings.cfg:.enlightenment/keybindings.cfg + evnc-keybindings.cfg:.enlightenment-vnc/keybindings.cfg jue-peek.jpg:.enlightenment/backgrounds/jue-peek.jpg" mkdir -p $HOME/test echo "Installing dotfiles..." @@ -153,28 +171,49 @@ for d in $dotfiles; do mv $ft.new $ft echo " $target" done -echo " all done." +echo " all done." ### Set up the Emacs config +$echon "Finding a suitable emacs:$echoc" +emacs=no +for i in emacs21 emacs; do + if type -p >/dev/null $i; then + emacs=$i + break + fi +done +if [ $emacs = no ]; then + echo " failed." + emacs=: +else + echo " $emacs." +fi + echo "Installing Emacs packages..." -for elib in make-regexp; do +emacspkg=" + make-regexp + git vc-git + quilt" +for elib in $emacspkg; do $echon " $elib:$echoc" - if $false emacs >/dev/null 2>&1 --batch --eval ' - (kill-emacs (condition-case nil - (progn (load-library "make-regexp") 0) - (error 1)))'; then + if $false $emacs >/dev/null 2>&1 --no-site-file --batch --eval ' + (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 --batch \ - --eval '(byte-compile-file "make-regexp.el")') + $emacs >/dev/null 2>&1 --no-site-file --batch \ + --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" @@ -185,5 +224,5 @@ for link in dot-emacs.el:dot-emacs.el emacs-Makefile:Makefile; do mv $HOME$sub/lib/emacs/$to.new $HOME$sub/lib/emacs/$to done $echon " compiling$echoc" -make >/dev/null 2>&1 -C $HOME$sub/lib/emacs +make >/dev/null 2>&1 -C $HOME$sub/lib/emacs EMACS=$emacs echo " done."