blob: 660cfb71656ad0dfad79f914fffa108b03db1122 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
#!/bin/bash
cd `dirname $0`
dodiff() {
if [ -d "$2" ]; then
# If we just copying some file to directory
OUT=$2/$(basename "$1")
else
OUT=$2
fi
if ! [ -f "$OUT" ]; then
echo "Not installed: $1 => $OUT"
read -p "Install? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
doinst "$1" "$OUT"
fi
return
fi
if cmp "$1" "$OUT" >/dev/null; then
echo "No difference detected: $OUT"
return
fi
vimdiff "$1" "$OUT"
}
diff() {
# Iterate trough source directory but ignore any git repositories
# Note that its design decision to not iterate trough target directory.
if [ -d "$1" ]; then
# This is check if we have correct inst command basically. If it is
# directory than it have to have trailing slash to ensure that no
# additional directory is created.
if ! echo "$1" | grep -qE '/$'; then
echo ERROR: Directory without trailing slash detected: $1
exit 1
fi
for f in `find "$1" \( -type d -exec test -e '{}'/.git \; \) -prune -o -type f -print`; do
F="${f#$1}"
echo $f
dodiff "$1/$F" "$2/$F"
done
else
dodiff "$1" "$2"
fi
}
doinst() {
echo rsync -rlpt $1 $2
rsync -rlpt $1 $2
}
inst() {
if [ -e "$2" ]; then
# If output exists, execute diff instead
diff $1 $2
return
fi
doinst $1 $2
}
# TODO if on archlinux install pkgstats and other packages we would need for every feature
read -p "Install Bashrc? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst bashrc ~/.bashrc
inst shellrc ~/.shellrc
fi
read -p "Install zshrc? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst zshrc ~/.zshrc
inst shellrc ~/.shellrc
fi
read -p "Install GIT configuration? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst gitconfig ~/.gitconfig
inst local/git-prompt.sh ~/.local/
fi
read -p "Install VIM scripts? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst vimrc ~/.vimrc
inst vim/ ~/.vim
mkdir -p ~/.cache/vim # directory for *.swp files
mkdir -p ~/.cache/vim-undo # directory for undo files
echo "Please don't forget to setup YouCompleteMe"
fi
read -p "Install email synchronization? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst local/bin/annoyme ~/.local/bin/
inst local/sbin/annoyme-request ~/.local/sbin/
inst local/sbin/syncemail ~/.local/sbin/
inst config/offlineimap/ ~/.config/offlineimap
inst config/systemd/user/syncemail.service ~/.config/systemd/user
fi
read -p "Install mutt configuration? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst mutt/ ~/.mutt
inst urlview ~/.urlview
fi
read -p "Install i3 configuration and related tools? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst xinitrc ~/.xinitrc
inst Xresources ~/.Xresources
inst config/i3/ ~/.config/i3
inst config/i3blocks/ ~/.config/i3blocks
inst config/i3status/ ~/.config/i3status
inst config/dunst/ ~/.config/dunst
inst local/bin/mxrandr ~/.local/bin/mxrandr
fi
read -p "Install Conkeror configuration? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst conkerorrc ~/.conkerorrc
inst conkeror/ ~/.conkeror
fi
read -p "Install MPD configuration? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst config/mpd/ ~/.config/mpd
fi
read -p "Install backup script? (Y/n) "
if [[ $REPLY =~ ^[Yy]?$ ]]; then
inst local/bin/system-backup ~/.local/bin/system-backup
fi
|