]> git.donarmstrong.com Git - bin.git/blob - new_home_directory
Merge branch 'master' of git+ssh://git.donarmstrong.com/srv/git/bin
[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             apt-get download $pkg;
22             dpkg-deb -x $pkg*.deb .
23         );
24         mkdir -p bin
25         ln ~/local_packages/$pkg/usr/bin/$pkg bin/$pkg -s
26         if [ "$pkg" == "mr" ]; then
27             echo "include = cat ~/local_packages/$pkg/usr/share/mr/*" >> ~/.mrconfig
28         fi;
29         PATH="$HOME/local_packages/$pkg/usr/bin/:$PATH"
30         export PATH
31     fi;
32 done;
33
34 # .config is currently a link; this indicates that we are dealing with my old configuration system
35 for a in .config; do
36     if [ -L ${a} ]; then
37         mv ${a} ${a}_bak;
38         mkdir -p ${a};
39         cp -r ${a}_bak/* ${a}/;
40     fi;
41 done;
42
43 for a in lib bin; do 
44     if [ -d ${a}/.svn ]; then
45         mv ${a} ${a}.bak
46     fi;
47 done;
48
49 if [ "$1" == "ssh" ]; then
50     mkdir -p .config/;
51     (cd .config/;
52         git checkout git+ssh://git.donarmstrong.com/srv/git_private/mr.git
53     );
54     mr --config ~/.config/mr/config.d/base.git checkout
55 else 
56     vcsh clone $GIT_BASE/mr.git mr;
57 fi;
58
59 mr checkout;
60
61 for a in .zsh .ssh; do
62     if [ -L ${a} ]; then
63         mv ${a} ${a}_bak;
64         mr up;
65         mkdir -p ${a};
66         cp -r ${a}_bak/* ${a}/;
67     fi;
68 done;
69
70 if [ ! -e .ssh/authorized_keys ]; then
71     (cd .ssh/; ln authorized_keys_default authorized_keys -s; )
72 fi;
73
74 # do some cleanup; you might want to run git reset --hard in some
75 # cases; we don't do so automatically in case there are local changes
76 # that should be kept
77 mr run git reset --soft origin/master
78 mr up
79
80 # move mr and vcsh to ~/bin if they are in ~/bin.bak
81 for pkg in mr vcsh; do
82     if [ -e ~/bin.bak/$pkg ]; then
83         mv ~/bin.bak/$pkg ~/bin/;
84     fi;
85 done;