X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=new_home_directory;h=3e492a37c7da0ff6bf9a4fc72a2349f38b44a489;hb=79334fd20b0bf56e3c4106900c0dd23445b0fb3f;hp=99585bdb10e4e994649be1eb07e45b20c7c8272d;hpb=ea40fa6e1517d2d25cccf0cfc50a5f58ca24614f;p=bin.git diff --git a/new_home_directory b/new_home_directory index 99585bd..3e492a3 100755 --- a/new_home_directory +++ b/new_home_directory @@ -5,7 +5,7 @@ # makes a new home directory; defaults to one that does not use ssh -GIT_BASE=http://git.donarmstrong.com/ +GIT_BASE=https://git.donarmstrong.com/ if [ "$1" = "ssh" ]; then GIT_BASE=git+ssh://git.donarmstrong.com/srv/git/ @@ -18,13 +18,29 @@ 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 . + deb_name=$pkg + if [ $pkg == "mr"; ]; then + deb_name=myrepos + fi; + if which apt-get >/dev/null 2>&1; then + apt-get download $deb_name; + dpkg-deb -x ${deb_name}*.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 @@ -55,6 +71,7 @@ if [ "$1" = "ssh" ]; then else vcsh clone $GIT_BASE/mr.git mr; fi; + mr checkout; for a in .zsh .ssh; do @@ -67,7 +84,15 @@ for a in .zsh .ssh; do 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; + +if [ ! -e ~/bin/.git ]; then + # OK, bin must have already existed; check it out directly + mv bin bin.tmp; + PATH=~/bin.tmp:$PATH mr checkout bin; + mv bin.tmp/* bin; + rmdir bin.tmp; fi; # do some cleanup; you might want to run git reset --hard in some @@ -76,8 +101,9 @@ fi; mr run git reset --soft origin/master mr up -# make sure mr and vcsh are in ~/bin if they are in ~/bin.bak +# move mr and vcsh to ~/bin if they are in ~/bin.bak for pkg in mr vcsh; do if [ -e ~/bin.bak/$pkg ]; then - cp ~/bin.bak/$pkg ~/bin/$pkg; + mv ~/bin.bak/$pkg ~/bin/; fi; +done;