aboutsummaryrefslogtreecommitdiff
path: root/install
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