X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=new_home_directory;h=31f0983266b98699a9fc20584e67bae2c3adfe65;hb=7072dd6217d2a600f729188624f228b5700bd836;hp=5c83ae177e435f049c6cbc5cbe577acc46a85db7;hpb=55295ab675db06d8c9db55d3f3f4309dc5342e18;p=bin.git diff --git a/new_home_directory b/new_home_directory index 5c83ae1..31f0983 100755 --- a/new_home_directory +++ b/new_home_directory @@ -1,5 +1,9 @@ #!/bin/sh +# wget -O new_home_directory 'http://git.donarmstrong.com/?p=bin.git;a=blob_plain;f=new_home_directory;hb=HEAD' +# sh new_home_directory; + + # makes a new home directory; defaults to one that does not use ssh GIT_BASE=http://git.donarmstrong.com/ @@ -14,27 +18,45 @@ for pkg in mr vcsh; do echo "Package $pkg doesn't exist; getting it" mkdir -p local_packages/$pkg; (cd local_packages/$pkg; - apt-get download $pkg; - dpkg-deb -x $pkg*.deb . + if which apt-get >/dev/null 2>&1; then + apt-get download $pkg; + dpkg-deb -x $pkg*.deb . + else + # ok, this host isn't Debian. + if [ "$pkg" == "mr" ]; then + wget http://http.debian.net/debian/pool/main/m/myrepos/myrepos_1.20160123_all.deb + ar p myrepos*.deb data.tar.xz|xz --decompress|tar -x + elif [ "$pkg" == "vcsh" ]; then + wget http://http.debian.net/debian/pool/main/v/vcsh/vcsh_1.20151229-1_all.deb + ar p vcsh*.deb data.tar.xz|xz --decompress|tar -x + fi; + + fi; ); mkdir -p bin ln ~/local_packages/$pkg/usr/bin/$pkg bin/$pkg -s if [ "$pkg" == "mr" ]; then - echo "include = cat ~/local_packages/$pkg/usr/share/mr/*" >> ~/.mrconfig + echo -e "[DEFAULT]\ninclude = cat ~/local_packages/$pkg/usr/share/mr/*" >> ~/.mrconfig fi; + PATH="$HOME/local_packages/$pkg/usr/bin/:$PATH" + export PATH fi; done; # .config is currently a link; this indicates that we are dealing with my old configuration system -if [ -L .config ]; then - mv .config .config_bak; - mkdir -p .config; - cp -r .config_bak/* .config/; -fi; +for a in .config; do + if [ -L ${a} ]; then + mv ${a} ${a}_bak; + mkdir -p ${a}; + cp -r ${a}_bak/* ${a}/; + fi; +done; -if [ -d lib/.svn ]; then - mv lib/.svn lib/.svn_bak; -fi; +for a in lib bin; do + if [ -d ${a}/.svn ]; then + mv ${a} ${a}.bak + fi; +done; if [ "$1" = "ssh" ]; then mkdir -p .config/; @@ -45,7 +67,31 @@ if [ "$1" = "ssh" ]; then else vcsh clone $GIT_BASE/mr.git mr; fi; + mr checkout; + +for a in .zsh .ssh; do + if [ -L ${a} ]; then + mv ${a} ${a}_bak; + mr up; + mkdir -p ${a}; + cp -r ${a}_bak/* ${a}/; + fi; +done; + if [ ! -e .ssh/authorized_keys ]; then - (cd .ssh/; ln authorized_keys_default authorized_keys -s;) + (cd .ssh/; ln authorized_keys_default authorized_keys -s; ) fi; + +# do some cleanup; you might want to run git reset --hard in some +# cases; we don't do so automatically in case there are local changes +# that should be kept +mr run git reset --soft origin/master +mr up + +# move mr and vcsh to ~/bin if they are in ~/bin.bak +for pkg in mr vcsh; do + if [ -e ~/bin.bak/$pkg ]; then + mv ~/bin.bak/$pkg ~/bin/; + fi; +done;