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