-
Notifications
You must be signed in to change notification settings - Fork 0
/
install.sh
executable file
·126 lines (105 loc) · 2.18 KB
/
install.sh
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
#!/usr/bin/env bash
set -eo pipefail
install::dotfiles(){
echo "Linking dotfiles..."
trap "echo Cleanup current dotfiles before linking." ERR
stow bash
stow vim
stow tmux
stow fonts
trap - ERR
}
install::custombins(){
echo "Linking bins..."
for bin in ~/dotfiles/bin/*; do
sudo ln -s $bin /usr/local/bin/$(basename $bin) || echo "Already linked."
done
}
install::configscripts() {
echo "Executing configuration scripts..."
source scripts/install_fzf.sh
source scripts/install_libinput_gestures.sh
}
install::ubuntu() {
dependencies="\
shellcheck \
build-essential \
stow \
vim \
tmux \
ack \
tig \
xclip \
curl \
jq \
ansible \
"
echo "Installing $dependencies with apt..."
sudo apt-get install $dependencies -y
install::dotfiles
install::custombins
install::configscripts
(cd scripts/playbooks && sudo ansible-playbook desktop_ubuntu.yml)
}
install::fedora() {
dependencies="
ShellCheck \
stow \
vim \
ack \
tig\
jq \
xclip \
"
echo "Installing $dependencies with dnf..."
sudo dnf install $dependencies -y
install::dotfiles
install::custombins
install::configscripts
(cd scripts/playbooks && sudo ansible-playbook desktop_fedora.yml)
}
install::darwin() {
dependencies="\
shellcheck \
coreutils \
findutils \
gnu-tar \
gnu-sed \
gawk \
gnutls \
gnu-indent \
gnu-getopt \
grep \
vim \
stow \
ansible \
jq \
tig \
"
echo "Installing $dependencies with homebrew..."
brew install $dependencies
install::dotfiles
install::custombins
install::configscripts
}
if [[ `pwd` != ~/dotfiles ]]; then
echo This script must be executed in ~/dotfiles. Exiting.
exit 1
fi
echo "Requesting sudo privileges..."
sudo true
echo "Detecting platform..."
if [[ $OSTYPE == "linux"* ]]; then
if [[ -e /etc/redhat-release ]]; then
echo "Fedora detected."
install::fedora
fi
if grep "Ubuntu" /etc/lsb-release &> /dev/null; then
echo "Ubuntu detected."
install::ubuntu
fi
fi
if [[ $OSTYPE == "darwin"* ]]; then
echo "Darwin detected."
install::darwin
fi