X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/2d07849bd4e5b7cdd6ed19c9f4360e65c6d50c5d..18bb0f77715d66d6ba7ec48eee7b3bdb9a5a0008:/setup diff --git a/setup b/setup index 132bf7f..6347acd 100755 --- a/setup +++ b/setup @@ -10,7 +10,7 @@ umask 002 sub= mkdir -p $HOME$sub -: ${REPO=http://ftp.distorted.org.uk/ftp/pub/mdw/profile} +: ${REPO=http://ftp.distorted.org.uk/pub/mdw/profile} export PATH=/usr/local/bin:$HOME$sub/bin:/usr/bin:/usr/ccs/bin:/bin @@ -75,47 +75,19 @@ done echo " all done." ###-------------------------------------------------------------------------- -### Install necessary things. - -echo "Installing useful scripts..." - -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 - if $false [ -x $p/$script ]; then - found=t - break - fi - done - if [ "$found" ]; then - echo " already installed." - else - $echon " downloading$echoc" - $GETURL $HOME$sub/bin/$script $REPO/$script - chmod +x $HOME$sub/bin/$script - echo " done." - fi -done - -echo " all done." - -###-------------------------------------------------------------------------- ### Install some more complicated programs. echo "Installing packages..." systems=" - mlib:2.0.4:crc-mktab - chkpath:1.1.0:tmpdir + mlib:crc-mktab + checkpath:tmpdir " [ "$xstuff" ] && systems="$systems - xtoys:1.4.0:xatom + 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." @@ -123,15 +95,19 @@ 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 + ../configure \ + --prefix=$HOME$sub \ + PKG_CONFIG_PATH=$HOME$sub/lib/pkgconfig \ + >>buildlog 2>&1 $echon " building$echoc" make >>buildlog 2>&1 $echon " installing$echoc" @@ -156,27 +132,36 @@ fi ## Symlink the various dotfiles into place dotfiles=" bash_profile bash_logout bashrc inputrc bash_completion - emacs emacs-calc vm - vimrc mg - mailrc signature + emacs emacs-calc vm gnus.el ercrc.el + vimrc mg zile lesskey + ditz-config + mailrc signature muttrc cgrc tigrc gdbinit guile + rcrc + toprc + mc-ini:.mc/ini mc-panels.ini:.mc/panels.ini + pulse-daemon.conf:.pulse/daemon.conf + aspell.conf + tclshrc:.tclshrc tclshrc:.wishrc lisp-init.lisp:.cmucl-init.lisp lisp-init.lisp:.sbclrc lisp-init.lisp:.clisprc.lisp lisp-init.lisp:.eclrc + swank.lisp + w3m-config:.w3m/config elinks.conf:.elinks/elinks.conf dircolors colordiffrc screenrc cvsrc indent.pro" [ "$xstuff" ] && dotfiles="$dotfiles - xinitrc xsession Xdefaults vncrc vncsession + xinitrc xsession xmodmap Xdefaults vncrc vncsession + fonts.conf + stalonetrayrc putty-defaults:.putty/sessions/Default%20Settings + mdw.session:.config/gnome-session/sessions/mdw.session 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 - e16-config:.e16/e_config--1.0.cfg - jue-peek.jpg:.enlightenment/backgrounds/jue-peek.jpg - jue-peek.jpg:.e16/backgrounds/jue-peek.jpg" + e16-bindings:.e16/bindings.cfg" echo "Installing dotfiles..." for d in $dotfiles; do target=.$d @@ -186,53 +171,120 @@ for d in $dotfiles; do ft=$HOME$sub/$target dir=${ft%/*} mkdir -p $dir - ln -s $here/$d $ft.new + ln -s $here/dot/$d $ft.new mv $ft.new $ft echo " $target" 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." +## Substitute things which need substituting. +dotfilessubst=" + gitconfig + mykermrc + pulse-default.pa.in:.pulse/default.pa" +echo "Installing dotfiles with substitutions..." +for d in $dotfilessubst; do + case $d in + *:*) target=${d#*:} d=${d%%:*};; + *) target=.$d d=$d.in;; + esac + ft=$HOME$sub/$target + dir=${ft%/*} + mkdir -p $dir + sed " +1i\\ +### generated by $here/setup; do not edit!\\ + +/@home@/ s$HOMEg +/@profile@/ s$hereg +/@releasekey@/ s$(bin/mdw-conf releasekey 481334C2)g +" dot/$d >$ft.new + mv $ft.new $ft + echo " $target" +done +echo " all done." + +## Symlink backgrounds. +backgrounds=" + bsg-supper.jpg + harley-quinn.jpg + hypatia.jpg + jue-peek.jpg + lilith.jpg + lovelace.jpg + medusa.jpg + noodly.jpg + rayne.jpg +" +if [ "$xstuff" ]; then + echo "Installing backgrounds..." + for b in $backgrounds; do + for e in enlightenment e16; do + dir=$HOME$sub/.$e/backgrounds + t=$dir/$b + mkdir -p $dir + ln -s $here/bg/$b $t.new + mv $t.new $t + done + echo " $b" + done + echo " all done." +fi ###-------------------------------------------------------------------------- ### Install useful scripts included in this package. scripts=" mdw-editor + mdw-pager mdw-conf + mdw-build + emacsclient-hack movemail-hack - emerge-hack" + sendmail-hack + aspell-hack + emerge-hack + lesspipe.sh + run-with-shell-env + start-ssh-agent + start-ssh-pageant + svnwrap + guest-console + hyperspec" [ "$xstuff" ] && scripts="$scripts - xrun + xinitcmd + un-backslashify-selection + lock-screen 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 + ln -s $here/bin/$s $ft.new mv $ft.new $ft echo " $s" done echo " all done." +hacks=" + ssh:ssh" +echo "Installing hacks..." +for h in $hacks; do + d=${h%%:*} h=${h#*:} + ft=$HOME$sub/bin/hacks/$d + mkdir -p $ft + ln -s $here/hacks/$h $ft/$h.new + mv $ft/$h.new $ft/$h + echo " $d:$h" +done +echo " all done." + ###-------------------------------------------------------------------------- ### Set up the Emacs config. $echon "Finding a suitable emacs:$echoc" emacs=no -for i in emacs22 emacs21 emacs; do +for i in emacs22 emacs23 emacs21 emacs; do if type -p >/dev/null $i; then emacs=$i break @@ -248,7 +300,10 @@ fi echo "Installing Emacs packages..." emacspkg=" make-regexp + ew-hols + mdw-gnus-patch git git-blame vc-git stgit + mdw-multiple-cursors quilt" for elib in $emacspkg; do $echon " $elib:$echoc" @@ -260,8 +315,12 @@ for elib in $emacspkg; do (error 1))))'; then echo " already installed." else - $echon " downloading$echoc" - $GETURL $HOME$sub/lib/emacs/$elib.el $REPO/$elib.el + if [ -f el/$elib.el ]; then + cp el/$elib.el $HOME$sub/lib/emacs/$elib.el + else + $echon " downloading$echoc" + $GETURL $HOME$sub/lib/emacs/$elib.el $REPO/$elib.el + fi $echon " compiling$echoc" (cd $HOME$sub/lib/emacs; $emacs >/dev/null 2>&1 --no-site-file --batch \ @@ -273,14 +332,13 @@ echo " all done." $echon "Setting up Emacs configuration:$echoc" $echon " linking$echoc" -for link in dot-emacs.el:dot-emacs.el emacs-Makefile:Makefile; do +for f in dot-emacs.el Makefile; do set -- $(echo $link | tr : ' ') - from=$1 to=$2 - ln -s $here/$from $HOME$sub/lib/emacs/$to.new - mv $HOME$sub/lib/emacs/$to.new $HOME$sub/lib/emacs/$to + ln -s $here/el/$f $HOME$sub/lib/emacs/$f.new + mv $HOME$sub/lib/emacs/$f.new $HOME$sub/lib/emacs/$f done $echon " compiling$echoc" -make >/dev/null 2>&1 -C $HOME$sub/lib/emacs EMACS=$emacs +{ cd $HOME$sub/lib/emacs && make EMACS=$emacs; } >/dev/null 2>&1 echo " done." ###----- That's all, folks --------------------------------------------------