-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup
executable file
·244 lines (214 loc) · 9.22 KB
/
setup
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
#!/usr/bin/env bash
set -e
_linkRCFiles() {
case "$(uname -s)" in
Linux)
if ! type rcup >/dev/null 2>&1; then
curl -LO https://thoughtbot.github.io/rcm/dist/rcm-1.3.4.tar.gz &&
sha=$(sha256sum rcm-1.3.4.tar.gz | cut -f1 -d' ') &&
[ "$sha" = "9b11ae37449cf4d234ec6d1348479bfed3253daba11f7e9e774059865b66c24a" ] &&
tar -xvf rcm-1.3.4.tar.gz &&
pushd . > /dev/null || exit
cd rcm-1.3.4 &&
./configure --prefix=$HOME/.local && make && make install
export PATH=$PATH:$HOME/.local/bin
popd &> /dev/null || exit 1
rm -rf rcm-1.3.4
rm rcm-1.3.4.tar.gz
fi
echo Updating rc files for Linux
RCRC=./rcrc rcup -t Linux -v
;;
Darwin)
if ! type rcup >/dev/null 2>&1; then
brew install rcm
fi
echo Updating rc files for MacOS
RCRC=./rcrc rcup -t Darwin -v
;;
esac
}
_installNvm() {
if ! declare -f nvm &>/dev/null ; then
case "$(uname -s)" in
Linux)
unset NVM_DIR
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.config/nvm"
mkdir -p "$HOME/.config/nvm"
# shellcheck disable=SC1091
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
;;
Darwin)
if [ ! -d "$HOME/.config/nvm" ]; then
unset NVM_DIR
mkdir -p "$HOME/.config/nvm"
export NVM_DIR="$HOME/.config/nvm"
fi
if [ -z "$NVM_DIR" ]; then
export NVM_DIR="$HOME/.config/nvm"
fi
brew install nvm
# shellcheck disable=SC1091
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
;;
esac
fi
}
_installNode() {
if ! type node >/dev/null 2>&1; then
echo "Installing node"
nvm install node #install LTS version of node
fi
if [ ! -e "$(dirname "$0")/bash/bash_completion.d/npm.sh" ]; then
if type npm >/dev/null 2>&1; then
echo "Adding npm completion"
npm completion > "$(dirname "$0")/bash/bash_completion.d/npm.sh"
chmod +x "$(dirname "$0")/bash/bash_completion.d/npm.sh"
fi
fi
}
_installRvmAndRuby() {
if [ ! -s "$HOME/.rvm/scripts/rvm" ]; then
echo "Installing rvm"
echo "...When done, \`rvm install 2.7\` or some known ruby version and re-run setup to continue"
if ! type gpg >/dev/null 2>&1; then
echo
echo " First installing gpg"
case "$(uname -s)" in
Linux)
sudo apt-get install gnupg2 -y
;;
Darwin)
brew install gnupg
;;
esac
fi
export rvm_ignore_dotfiles=yes
gpg --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable --ruby
echo
fi
}
_installFonts() {
echo "Downloading fonts"
mkdir -p "$HOME/.local/share/fonts"
cd "$HOME/.local/share/fonts"
echo "Downloading Roboto Mono fonts"
curl -fLo \
"Roboto Mono Bold Italic Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Bold-Italic/complete/Roboto%20Mono%20Bold%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Roboto Mono Bold Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Bold/complete/Roboto%20Mono%20Bold%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Roboto Mono Italic Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Italic/complete/Roboto%20Mono%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Roboto Mono Light Italic Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Light-Italic/complete/Roboto%20Mono%20Light%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Roboto Mono Light Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Light/complete/Roboto%20Mono%20Light%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Roboto Mono Medium Italic Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Medium-Italic/complete/Roboto%20Mono%20Medium%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Roboto Mono Medium Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Medium/complete/Roboto%20Mono%20Medium%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Roboto Mono Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Regular/complete/Roboto%20Mono%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Roboto Mono Thin Italic Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Thin-Italic/complete/Roboto%20Mono%20Thin%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Roboto Mono Thin Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/RobotoMono/Thin/complete/Roboto%20Mono%20Thin%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
echo "Downloading DejaVu Sans Mono fonts"
curl -fLo \
"DejaVu Sans Mono Bold Oblique Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/DejaVuSansMono/Bold-Italic/complete/DejaVu%20Sans%20Mono%20Bold%20Oblique%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"DejaVu Sans Mono Bold Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/DejaVuSansMono/Bold/complete/DejaVu%20Sans%20Mono%20Bold%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"DejaVu Sans Mono Oblique Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/DejaVuSansMono/Italic/complete/DejaVu%20Sans%20Mono%20Oblique%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"DejaVu Sans Mono Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/DejaVuSansMono/Regular/complete/DejaVu%20Sans%20Mono%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
echo "Downloading Hack Mono fonts"
curl -fLo \
"Hack Bold Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Hack/Bold/complete/Hack%20Bold%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Hack Italic Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Hack/Italic/complete/Hack%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Hack Bold Italic Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Hack/BoldItalic/complete/Hack%20Bold%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Hack Regular Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Hack/Regular/complete/Hack%20Regular%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
echo "Downloading Meslo LG M DZ (medium dotted zero) fonts"
curl -fLo \
"Meslo LG M DZ Bold Italic Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Meslo/M-DZ/Bold-Italic/complete/Meslo%20LG%20M%20DZ%20Bold%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Meslo LG M DZ Bold Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Meslo/M-DZ/Bold/complete/Meslo%20LG%20M%20DZ%20Bold%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Meslo LG M DZ Italic Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Meslo/M-DZ/Italic/complete/Meslo%20LG%20M%20DZ%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
curl -fLo \
"Meslo LG M DZ Regular Nerd Font Complete Mono.ttf" \
"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Meslo/M-DZ/Regular/complete/Meslo%20LG%20M%20DZ%20Regular%20Nerd%20Font%20Complete%20Mono.ttf?raw=true";
echo "Finished downloading fonts"
case "$(uname -s)" in
Linux)
echo
echo "Updating font cache"
fc-cache -v
;;
Darwin)
echo
echo "Manually install fonts"
;;
esac
}
_setupNvim() {
echo "Setting up nvim"
# shellcheck disable=SC1091
. "$HOME/.config/nvim/setup"
}
_run() {
pushd . > /dev/null || exit
local _dotfilesDir
_dotfilesDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
cd "$_dotfilesDir";
git submodule update --init --recursive
echo
_linkRCFiles
echo
_installNvm
_installNode
echo
_installRvmAndRuby
# echo
# _installFonts
echo
_setupNvim
echo
echo "Done"
popd &> /dev/null || exit 1
}
_run
unset -f _run
unset -f _linkRCFiles
unset -f _installNvm
unset -f _installNode
unset -f _installRvmAndRuby
unset -f _installFonts
unset -f _setupNvim