X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/ccaac00b858370dec33d802abea6fedc22b3c130..b056f5c4e8a2217aa80dc629c7e32ad3eaa02805:/setup diff --git a/setup b/setup index cec2351..25e9dd3 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://ftp.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,9 @@ 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" +for script in $scripts; do $echon " $script:$echoc" found= for p in /bin /usr/bin /usr/local/bin $(echo $PATH | tr : ' '); do @@ -86,17 +88,16 @@ 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..." 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 : ' ') @@ -125,23 +126,40 @@ 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 +dotfiles=" + bash_profile bash_logout bashrc inputrc bash_completion + emacs emacs-calc vm + vimrc mg + mailrc signature + gitconfig cgrc tigrc + gdbinit + guile 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 - eterm-theme.cfg:.Eterm/themes/Eterm/theme.cfg + xinitrc xsession Xdefaults vncrc vncsession + putty-defaults:.putty/sessions/Default%20Settings 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 @@ -155,28 +173,68 @@ for d in $dotfiles; do mv $ft.new $ft echo " $target" done -echo " all done." +echo " all 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 +$echon "Finding a suitable emacs:$echoc" +emacs=no +for i in emacs22 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 git-blame vc-git stgit + 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" @@ -187,5 +245,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."