-
Notifications
You must be signed in to change notification settings - Fork 0
/
osx_build.sh
159 lines (121 loc) · 2.46 KB
/
osx_build.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
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
#!/usr/bin/env bash
echo "$(date): starting build..."
# Exit if a command exits with a non-zero status
set -e
# Print commands as they are executed
set -x
# --------
# Homebrew
# --------
echo "$(date): installing homebrew..."
# Check for Homebrew, install if necessary
if test ! $(which brew); then
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
fi
# Update homebrew recipes
brew update
# ----------------------
# GNU command line tools
# ----------------------
echo "$(date): installing GNU utils..."
# Other GNU utilities
GNUS=(
bat
gettext
grep
htop
httpie
jq
watch
wget
)
brew install ${GNUS[@]}
# -------------
# Bourne shells
# -------------
echo "$(date): installing Z shell..."
# Z shell
ZSHS=(
zsh
)
brew install ${ZSHS[@]}
# Check for shell, change if necessary
if test ! $(echo $0 | grep zsh); then
# Since Mac OS Catalina, Z-shell default shell
sudo echo $(which zsh) > /etc/shells
chsh -s $(which zsh)
fi
# Check for Oh-My-Zsh, install if necessary
if test ! -d $HOME/.oh-my-zsh; then
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
fi
# -----------------
# Core dev packages
# -----------------
echo "$(date): installing packages..."
PKGS=(
# Binary build
cmake
geckodriver
git
libyaml
pgcli
sqlite
)
brew install ${PKGS[@]}
# -------------
# Core dev apps
# -------------
echo "$(date): installing applications..."
# Install cask apps
CSKS=(
1password-cli
chromedriver
cyberduck
dbeaver-community
docker
flux
gitkraken
iterm2
orbstack
postgres
postman
slack
visual-studio-code
)
brew cask install ${CSKS[@]}
# ------
# Python
# ------
echo "$(date): installing Python ecosystem..."
# Install python bins
PYS=(
python
pyenv
)
brew install ${PYS[@]}
# Install pipenv & pyenv
if test ! -d $HOME/.pyenv; then
makedir -p $HOME/.pyenv
fi
# ------
# Devops
# ------
echo "$(date): installing DevOps ecosystem..."
# Install python bins
DEVOPS=(
argo
awscli
circleci
helm
k9s
kubernetes-cli
terraform
)
brew install ${DEVOPS[@]}
echo "$(date): cleaning up..."
brew cleanup
brew doctor
echo "$(date): build complete!"