blob: a4a7b7362ec8615cb3017e00785cb8c43627f11f (
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
130
|
#!/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 it's 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/
inst local/bin/startme ~/.local/bin/
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
|