]> git.donarmstrong.com Git - bin.git/blob - new_home_directory
more work on new_home_directory
[bin.git] / new_home_directory
1 #!/bin/sh
2
3 # makes a new home directory; defaults to one that does not use ssh
4 GIT_BASE=http://git.donarmstrong.com/
5
6 if [ "$1" = "ssh" ]; then
7     GIT_BASE=git+ssh://git.donarmstrong.com/srv/git/
8 fi;
9
10 cd ~;
11
12 for pkg in mr vcsh; do
13     if ! which $pkg >/dev/null 2>&1; then
14         echo "Package $pkg doesn't exist; getting it"
15         mkdir -p local_packages/$pkg;
16         (cd local_packages/$pkg;
17             apt-get download $pkg;
18             dpkg-deb -x $pkg*.deb .
19         );
20         mkdir -p bin
21         ln ~/local_packages/$pkg/usr/bin/$pkg bin/$pkg -s
22         if [ "$pkg" == "mr" ]; then
23             echo "include = cat ~/local_packages/$pkg/usr/share/mr/*" >> ~/.mrconfig
24         fi;
25     fi;
26 done;
27
28 # .config is currently a link; this indicates that we are dealing with my old configuration system
29 for a in .config; do
30     if [ -L ${a} ]; then
31         mv ${a} ${a}_bak;
32         mkdir -p ${a};
33         cp -r ${a}_bak/* ${a}/;
34     fi;
35 done;
36
37 for a in lib bin; do 
38     if [ -d ${a}/.svn ]; then
39         mv ${a} ${a}.bak
40     fi;
41 done;
42
43 if [ "$1" = "ssh" ]; then
44     mkdir -p .config/;
45     (cd .config/;
46         git checkout git+ssh://git.donarmstrong.com/srv/git_private/mr.git
47     );
48     mr --config ~/.config/mr/config.d/base.git checkout
49 else 
50     vcsh clone $GIT_BASE/mr.git mr;
51 fi;
52 mr checkout;
53
54 for a in .zsh .ssh; do
55     if [ -L ${a} ]; then
56         mv ${a} ${a}_bak;
57         mr up;
58         mkdir -p ${a};
59         cp -r ${a}_bak/* ${a}/;
60     fi;
61 done;
62
63 if [ ! -e .ssh/authorized_keys ]; then
64     (cd .ssh/; ln authorized_keys_default authorized_keys -s;)
65 fi;
66
67 # do some cleanup; you might want to run git reset --hard in some
68 # cases; we don't do so automatically in case there are local changes
69 # that should be kept
70 mr run git reset --soft origin/master
71 mr up