]> git.donarmstrong.com Git - bin.git/blob - new_home_directory
add copy_from command
[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     fi;
30 done;
31
32 # .config is currently a link; this indicates that we are dealing with my old configuration system
33 for a in .config; do
34     if [ -L ${a} ]; then
35         mv ${a} ${a}_bak;
36         mkdir -p ${a};
37         cp -r ${a}_bak/* ${a}/;
38     fi;
39 done;
40
41 for a in lib bin; do 
42     if [ -d ${a}/.svn ]; then
43         mv ${a} ${a}.bak
44     fi;
45 done;
46
47 if [ "$1" = "ssh" ]; then
48     mkdir -p .config/;
49     (cd .config/;
50         git checkout git+ssh://git.donarmstrong.com/srv/git_private/mr.git
51     );
52     mr --config ~/.config/mr/config.d/base.git checkout
53 else 
54     vcsh clone $GIT_BASE/mr.git mr;
55 fi;
56 mr checkout;
57
58 for a in .zsh .ssh; do
59     if [ -L ${a} ]; then
60         mv ${a} ${a}_bak;
61         mr up;
62         mkdir -p ${a};
63         cp -r ${a}_bak/* ${a}/;
64     fi;
65 done;
66
67 if [ ! -e .ssh/authorized_keys ]; then
68     (cd .ssh/; ln authorized_keys_default authorized_keys -s;)
69 fi;
70
71 # do some cleanup; you might want to run git reset --hard in some
72 # cases; we don't do so automatically in case there are local changes
73 # that should be kept
74 mr run git reset --soft origin/master
75 mr up