]> git.donarmstrong.com Git - bin.git/blob - new_home_directory
add reset usb bus 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=https://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-get >/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/myrepos/myrepos_1.20160123_all.deb
28                  ar p myrepos*.deb data.tar.xz|xz --decompress|tar -x
29              elif [ "$pkg" == "vcsh" ]; then
30                  wget http://http.debian.net/debian/pool/main/v/vcsh/vcsh_1.20151229-1_all.deb
31                  ar p vcsh*.deb data.tar.xz|xz --decompress|tar -x
32              fi;
33              
34          fi;
35         );
36         mkdir -p bin
37         ln ~/local_packages/$pkg/usr/bin/$pkg bin/$pkg -s
38         if [ "$pkg" == "mr" ]; then
39             echo -e "[DEFAULT]\ninclude = cat ~/local_packages/$pkg/usr/share/mr/*" >> ~/.mrconfig
40         fi;
41         PATH="$HOME/local_packages/$pkg/usr/bin/:$PATH"
42         export PATH
43     fi;
44 done;
45
46 # .config is currently a link; this indicates that we are dealing with my old configuration system
47 for a in .config; do
48     if [ -L ${a} ]; then
49         mv ${a} ${a}_bak;
50         mkdir -p ${a};
51         cp -r ${a}_bak/* ${a}/;
52     fi;
53 done;
54
55 for a in lib bin; do 
56     if [ -d ${a}/.svn ]; then
57         mv ${a} ${a}.bak
58     fi;
59 done;
60
61 if [ "$1" = "ssh" ]; then
62     mkdir -p .config/;
63     (cd .config/;
64         git checkout git+ssh://git.donarmstrong.com/srv/git_private/mr.git
65     );
66     mr --config ~/.config/mr/config.d/base.git checkout
67 else 
68     vcsh clone $GIT_BASE/mr.git mr;
69 fi;
70
71 mr checkout;
72
73 for a in .zsh .ssh; do
74     if [ -L ${a} ]; then
75         mv ${a} ${a}_bak;
76         mr up;
77         mkdir -p ${a};
78         cp -r ${a}_bak/* ${a}/;
79     fi;
80 done;
81
82 if [ ! -e .ssh/authorized_keys ]; then
83     (cd .ssh/; ln authorized_keys_default authorized_keys -s; )
84 fi;
85
86 if [ ! -e ~/bin/.git ]; then
87     # OK, bin must have already existed; check it out directly
88     mv bin bin.tmp;
89     PATH=~/bin.tmp:$PATH mr checkout bin;
90     mv bin.tmp/* bin;
91     rmdir bin.tmp;
92 fi;
93
94 # do some cleanup; you might want to run git reset --hard in some
95 # cases; we don't do so automatically in case there are local changes
96 # that should be kept
97 mr run git reset --soft origin/master
98 mr up
99
100 # move mr and vcsh to ~/bin if they are in ~/bin.bak
101 for pkg in mr vcsh; do
102     if [ -e ~/bin.bak/$pkg ]; then
103         mv ~/bin.bak/$pkg ~/bin/;
104     fi;
105 done;