]> git.donarmstrong.com Git - bin.git/blob - new_home_directory
add rules for non-debian hosts
[bin.git] / new_home_directory
1 #!/bin/sh
2
3 # wget -O new_home_directory 'http://git.donarmstrong.com/?p=bin.git;a=blob_plain;f=new_home_directory;hb=HEAD'
4 # sh new_home_directory;
5
6
7 # makes a new home directory; defaults to one that does not use ssh
8 GIT_BASE=http://git.donarmstrong.com/
9
10 if [ "$1" = "ssh" ]; then
11     GIT_BASE=git+ssh://git.donarmstrong.com/srv/git/
12 fi;
13
14 cd ~;
15
16 for pkg in mr vcsh; do
17     if ! which $pkg >/dev/null 2>&1; then
18         echo "Package $pkg doesn't exist; getting it"
19         mkdir -p local_packages/$pkg;
20         (cd local_packages/$pkg;
21          if which apt-et >/dev/null 2>&1; then
22              apt-get download $pkg;
23              dpkg-deb -x $pkg*.deb .
24          else
25              # ok, this host isn't Debian.
26              if [ "$pkg" == "mr" ]; then
27                  wget http://http.debian.net/debian/pool/main/m/mr/mr_1.16_all.deb
28              elif [ "$pkg" == "vcsh" ]; then
29                  wget http://http.debian.net/debian/pool/main/v/vcsh/vcsh_1.20150502-1_all.deb
30              fi;
31              ar p $pkg*.deb|tar -jx;
32              
33          fi;
34         );
35         mkdir -p bin
36         ln ~/local_packages/$pkg/usr/bin/$pkg bin/$pkg -s
37         if [ "$pkg" == "mr" ]; then
38             echo -e "[DEFAULT]\ninclude = cat ~/local_packages/$pkg/usr/share/mr/*" >> ~/.mrconfig
39         fi;
40         PATH="$HOME/local_packages/$pkg/usr/bin/:$PATH"
41         export PATH
42     fi;
43 done;
44
45 # .config is currently a link; this indicates that we are dealing with my old configuration system
46 for a in .config; do
47     if [ -L ${a} ]; then
48         mv ${a} ${a}_bak;
49         mkdir -p ${a};
50         cp -r ${a}_bak/* ${a}/;
51     fi;
52 done;
53
54 for a in lib bin; do 
55     if [ -d ${a}/.svn ]; then
56         mv ${a} ${a}.bak
57     fi;
58 done;
59
60 if [ "$1" == "ssh" ]; then
61     mkdir -p .config/;
62     (cd .config/;
63         git checkout git+ssh://git.donarmstrong.com/srv/git_private/mr.git
64     );
65     mr --config ~/.config/mr/config.d/base.git checkout
66 else 
67     vcsh clone $GIT_BASE/mr.git mr;
68 fi;
69
70 mr checkout;
71
72 for a in .zsh .ssh; do
73     if [ -L ${a} ]; then
74         mv ${a} ${a}_bak;
75         mr up;
76         mkdir -p ${a};
77         cp -r ${a}_bak/* ${a}/;
78     fi;
79 done;
80
81 if [ ! -e .ssh/authorized_keys ]; then
82     (cd .ssh/; ln authorized_keys_default authorized_keys -s; )
83 fi;
84
85 # do some cleanup; you might want to run git reset --hard in some
86 # cases; we don't do so automatically in case there are local changes
87 # that should be kept
88 mr run git reset --soft origin/master
89 mr up
90
91 # move mr and vcsh to ~/bin if they are in ~/bin.bak
92 for pkg in mr vcsh; do
93     if [ -e ~/bin.bak/$pkg ]; then
94         mv ~/bin.bak/$pkg ~/bin/;
95     fi;
96 done;