forked from laurendorman/komputer-maschine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmacos
267 lines (232 loc) · 6.14 KB
/
macos
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
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
#!/bin/sh
mr_robot_echo() {
local fmt="$1"; shift
printf "\n$fmt\n" "$@"
}
append_to_zshrc() {
local text="$1" zshrc
local skip_new_line="${2:-0}"
zshrc="$HOME/.zshrc"
if ! grep -Fqs "$text" "$zshrc"; then
if [ "$skip_new_line" -eq 1 ]; then
printf "%s\n" "$text" >> "$zshrc"
else
printf "\n%s\n" "$text" >> "$zshrc"
fi
fi
}
# Let the user know if the script fails
trap 'ret=$?; test $ret -ne 0 && printf "\nmr_robot failed. :(\n\nPlease check the log file: ~/mr_robot.log\n\n" >&2; exit $ret' EXIT
set -e
if [ ! -d "$HOME/.bin/" ]; then
mkdir "$HOME/.bin"
fi
append_to_zshrc 'export PATH="$HOME/.bin:$PATH"'
if [ ! -d "/usr/local" ]; then
sudo mkdir /usr/local
fi
sudo chown -R $(whoami) /usr/local
HOMEBREW_PREFIX="/usr/local"
if [ -d "$HOMEBREW_PREFIX" ]; then
if ! [ -r "$HOMEBREW_PREFIX" ]; then
sudo chown -R "$LOGNAME:admin" /usr/local
fi
else
sudo mkdir "$HOMEBREW_PREFIX"
sudo chflags norestricted "$HOMEBREW_PREFIX"
sudo chown -R "$LOGNAME:admin" "$HOMEBREW_PREFIX"
fi
case "$SHELL" in
*/zsh) : ;;
*)
mr_robot_echo "🔀 Changing your shell to zsh…"
sudo chsh -s "$(which zsh)"
;;
esac
# Install XCode
if type xcode-select >&- && xpath=$( xcode-select --print-path ) &&
test -d "${xpath}" && test -x "${xpath}" ; then
mr_robot_echo "⏭ XCode already installed. Skipping…"
else
mr_robot_echo "🔨 Installing XCode…"
xcode-select --install
fi
# Install Homewbrew
if ! command -v brew >/dev/null; then
mr_robot_echo "🍻 Installing Homebrew…"
curl -fsS \
'https://raw.githubusercontent.com/Homebrew/install/master/install' | ruby
# shellcheck disable=SC2016
append_to_zshrc 'export PATH="/usr/local/bin:$PATH"' 1
export PATH="/usr/local/bin:$PATH"
else
mr_robot_echo "🍻 Updating Homebrew…"
brew update
fi
mr_robot_echo "Installing services…"
brew bundle --file=- <<EOF
tap "homebrew/services"
tap "homebrew/cask"
tap "homebrew/cask-drivers"
# Unix
brew "git"
# Tools
brew "npm"
brew "nvm"
brew "pyenv"
brew "rbenv"
brew "mas"
brew "gh"
EOF
# Check for NVM
if test ! $(brew list | grep nvm); then
mr_robot_echo '🔵 Installing Node Version Manager…'
brew install nvm
else
mr_robot_echo '⏭ Node already installed. Skipping…'
fi
# Check for Yarn
if ! type "yarn" &> /dev/null; then
mr_robot_echo '🧶 Installing Yarn…'
npm install -g yarn
else
mr_robot_echo '⏭ Yarn already installed. Skipping…'
fi
# Oh-my-zsh
if [ ! -d "$HOME/.oh-my-zsh/" ]; then
mr_robot_echo "😮 Installing Oh-my-zsh"
# If you're running the Oh My Zsh install script as part of an automated install, you can pass the flag --unattended to the install.sh script. This will have the effect of not trying to change the default shell, and also won't run zsh when the installation has finished.
# https://github.com/ohmyzsh/ohmyzsh#unattended-install
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
else
mr_robot_echo "⏭ Oh-my-zsh already installed. Skipping…"
fi
# Download powerlevel10k
# git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
mr_robot_echo "🤖 Installing Mac App Store programs"
# You can find these ids with `mas` by running `mas list` on a machine that has the programs already installed
# Or you can do `mas search applicationName` and find the id there
# https://github.com/mas-cli/mas#-usage
echo "Installing StopTheMadness"
mas install 1376402589
echo "Installing Keynote"
mas install 409183694
echo "Installing iA Writer"
mas install 775737590
echo "Installing Tot"
mas install 1491071483
echo "Installing 1Blocker"
mas install 1365531024
echo "Installing Hush"
mas install 1544743900
echo "Installing Magnet"
mas install 441258766
echo "Installing Affinity Publisher"
mas install 881418622
echo "Installing Agenda"
mas install 1287445660
echo "Installing GarageBand"
mas install 682658836
echo "Installing Amphetamine"
mas install 937984704
echo "Installing 1Password 7"
mas install 1333542190
echo "Installing 1Password for Safari"
mas install 1569813296
echo "Installing Shush"
mas install 496437906
echo "Installing Dynamo"
mas install 1445910651
echo "Installing Reeder"
mas install 1529448980
echo "Installing Codye"
mas install 1516894961
echo "Installing Xcode"
mas install 497799835
echo "Installing Affinity Photo"
mas install 824183456
echo "Installing Pages"
mas install 409201541
echo "Installing OmniFocus"
mas install 1346203938
echo "Installing iMovie"
mas install 408981434
echo "Installing Numbers"
mas install 409203825
echo "Installing Fantastical"
mas install 975937182
echo "Installing MainStage"
mas install 634159523
echo "Installing Logic Pro"
mas install 634148309
echo "DuckDuckGo Privacy Essentials"
mas install 1482920575
echo "Installing Affinity Designer"
mas install 824171161
echo "Installing GIF Brewery 3"
mas install 1081413713
echo "Installing Deliveries"
mas install 924726344
echo "Installing Link Unshortener"
mas install 1506953658
applications=(
anki
audio-hijack
backblaze
bartender
bettertouchtool
brave-browser
chrome-devtools
discord
dropbox
figma
figmadaemon
firefox
fluor
google-chrome
handbrake
Image2Icon
ImageAlpha
imagemagick
ImageOptim
iTerm2
karabiner-elements
keyboard-cleaner
lastfm
league-of-legends
loopback
ngrok
opera-gx
postico
postman
radio-silence
retrobatch
rob-3t
rocket
sequel-pro
slack
soundflowerbed
sublime-text
textexpander
tomighty
visual-studio-code
vlc
zoom
)
mr_robot_echo "🤖 Installing applications via homebrew…"
install_application() {
if test ! $(brew list --cask | grep $application); then
mr_robot_echo "⏳ Installing $application…"
brew install --cask --appdir="/Applications" $application
else
mr_robot_echo "⏭ $application already installed. Skipping…"
fi
}
for application in "${applications[@]}"
do install_application $application
done
# Clean up Homebrew files
mr_robot_echo "🧹 Cleaning up files…"
brew cleanup
rm -f -r /Library/Caches/Homebrew/*
mr_robot_echo "🤖 Congratulations! Your new computer is ready to go 🎉."