-
Notifications
You must be signed in to change notification settings - Fork 10
/
install.sh
318 lines (238 loc) · 10.5 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
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
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
# =========================
# XCode command line tools
# =========================
sudo xcode-select --install
# ==================
# Rozetta2
# ==================
sudo /usr/sbin/softwareupdate --install-rosetta --agree-to-license
# =====================
# Brew
# =====================
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
sudo tee -a "/etc/zshenv" >/dev/null << EOF
eval "\$(/opt/homebrew/bin/brew shellenv)"
EOF
# =====================
# git
# =====================
brew install git
# ==================
# ZSH
# ==================
brew install zsh antigen
# make just installed "zsh" binary a default shell
echo "$(which zsh)" | sudo tee -a /etc/shells
chsh -s "$(which zsh)"
# ======================
# Fonts
# ======================
brew tap homebrew/cask-fonts
brew install font-droid-sans-mono font-droid-sans-mono-nerd-font
# With file icons support
# brew cask install font-dejavu-sans # font-dejavusansmono-nerd-font-mono
# brew cask install font-source-code-pro
# brew cask install font-inconsolata-dz-for-powerline # font-inconsolata-nerd-font-mono
# =======================================
# GNU utils instead of MacOS equivalents
# =======================================
brew install coreutils findutils diffutils \
gnu-indent gnu-sed ed gnu-tar gnutls grep \
gnu-which gawk gzip watch wget
# Upgrade old tools on Mac
brew install bash less nano curl make
# sharkdp/vivid: A themeable LS_COLORS generator with a rich filetype datebase https://github.com/sharkdp/vivid
# brew formula contains outdated version, installing it manually from GH releases
wget --quiet https://github.com/sharkdp/vivid/releases/download/v0.9.0/vivid-v0.9.0-x86_64-apple-darwin.tar.gz -O /tmp/vivid.tar.gz
tar xzf /tmp/vivid.tar.gz -C /tmp
cp /tmp/vivid-v0.9.0-x86_64-apple-darwin/vivid /usr/local/bin/
rm -rf /tmp/vivid /tmp/vivid.tar.gz
# =====================
# Python
# =====================
# Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
# `python3`, `python3-config`, `pip3` etc., respectively, have been installed into
# /usr/local/opt/python/libexec/bin
brew install python
brew install pyenv
pyenv install 3.7.5
pyenv global system
# GitHub - ranger/ranger: A VIM-inspired filemanager for the console https://github.com/ranger/ranger
pip3 install ranger-fm
ranger --copy-config=rifle
# =====================
# git friends
# =====================
# Diff tools
brew cask install diffmerge
brew cask install sourcetree
# A viewer for git and diff output
# https://github.com/dandavison/delta
# TODO: choose between side-by-side and inline based on viewport width
# 🚀 automatic side-by-side based on column width? · Issue #359 · dandavison/delta https://github.com/dandavison/delta/issues/359
brew install git-delta
# GitHub - bigH/git-fuzzy: interactive `git` with the help of `fzf` https://github.com/bigH/git-fuzzy
pushd "/usr/local/share"
git clone https://github.com/bigH/git-fuzzy
ln -sf "/usr/local/share/git-fuzzy/bin/git-fuzzy" "/usr/local/bin/git-fuzzy"
popd
# ======================
# Node, NVM and npm libs
# ======================
# Installing nvm via homebrew is unsupported
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
# Install latest version of Node and make it default
nvm install --lts node
nmv alias default node
# sindresorhus/bundle-id-cli: Get bundle identifier from a bundle name (macOS): Safari → com.apple.Safari - https://github.com/sindresorhus/bundle-id-cli
# sindresorhus/app-path-cli: Get the path to an app (macOS) - https://github.com/sindresorhus/app-path-cli
npm install -g bundle-id-cli
npm install -g app-path-cli
#sindresorhus/fkill-cli: Fabulously kill processes. Cross-platform. - https://github.com/sindresorhus/fkill-cli
npm install -g fkill-cli
# 🔤 A list of all the public package names on npm. Updated daily. https://github.com/nice-registry/all-the-package-names#readme
npm install -g all-the-package-names
# =========================
# Apps & utilities
# =========================
# GitHub - junegunn/fzf: A command-line fuzzy finder https://github.com/junegunn/fzf
brew install fzf
$(brew --prefix)/opt/fzf/install
# Modern "ls" replacement, incl. colors, tree-like view. https://the.exa.website/
brew install exa
# This allows project-specific environment variables without cluttering the ~/.profile file.
# GitHub - direnv/direnv: unclutter your .profile https://github.com/direnv/direnv
brew install direnv
brew install openssh
brew install rsync
# HTTPie – command-line HTTP client for the API era https://httpie.io/
brew install httpie
# Install ngrok
# Setup secure URL to your localhost server through any NAT or firewall. https://ngrok.com/
brew cask install ngrok
# kdabir/has: ✅checks presence of various command line tools and their versions on the path - https://github.com/kdabir/has
brew install kdabir/tap/has
# mptre/yank: Yank terminal output to clipboard - https://github.com/mptre/yank
brew install yank
# antonmedv/fx: Command-line tool and terminal JSON viewer 🔥 - https://github.com/antonmedv/fx
brew install fx
# jq https://stedolan.github.io/jq/
brew install jq
# yudai/gotty: Share your terminal as a web application - https://github.com/yudai/gotty
# GoTTY is a simple command line tool that turns your CLI tools into web applications.
brew install yudai/gotty/gotty
# http-server: a command-line http server https://github.com/http-party/http-server
brew install http-server
# GitHub - sharkdp/bat: A cat(1) clone with wings. https://github.com/sharkdp/bat
brew install bat
# htop - an interactive process viewer https://htop.dev/
brew install htop
# GitHub - dalance/procs: A modern replacement for ps written in Rust https://github.com/dalance/procs
brew install procs
# ShellCheck – shell script analysis tool https://www.shellcheck.net/
# find bugs in your shell scripts
brew install shellcheck
# NCurses Disk Usage https://dev.yorhel.nl/ncdu
brew install ncdu
# HTTrack Website Copier - Free Software Offline Browser (GNU GPL) https://www.httrack.com/
brew install httrack
# Nmap: the Network Mapper - Free Security Scanner https://nmap.org/
brew install nmap
# GitHub - sivel/speedtest-cli: Command line interface for testing internet bandwidth using speedtest.net https://github.com/sivel/speedtest-cli
brew install speedtest-cli
# Info-ZIP's UnZip http://infozip.sourceforge.net/UnZip.html
brew install unzip
# mellowcandle/bitwise: Terminal based bit manipulator in ncurses https://github.com/mellowcandle/bitwise
brew install bitwise
# GitHub - imsnif/bandwhich: Terminal bandwidth utilization tool https://github.com/imsnif/bandwhich
brew install bandwhich
# Ultimate Plumber is a tool for writing Linux pipes with instant live preview https://github.com/akavel/up
brew install up
# GitHub - rupa/z: z - jump around https://github.com/rupa/z
brew install z
# itchyny/bed: Binary editor written in Go https://github.com/itchyny/bed#readme
brew install itchyny/tap/bed
# MediaInfo https://mediaarea.net/en/MediaInfo
brew install media-info
# archivemount - mounts an archive for access as a file system
# archivemount(1) - Linux man page https://linux.die.net/man/1/archivemount
brew install archivemount
# atool home http://www.nongnu.org/atool/
# atool is a script for managing file archives of various types (tar, tar+gzip, zip etc).
brew install atool
# wagoodman/dive: A tool for exploring each layer in a docker image https://github.com/wagoodman/dive
brew install dive
# Compile nnn manually rather than downloading from brew
# TODO: v3.5 is broken on MacOS. Switch to 3.6 when released.
pushd "$HOME/tmp"
curl -sLO https://github.com/jarun/nnn/releases/download/v3.5/nnn-v3.5.tar.gz
tar -xvzf nnn-v3.5.tar.gz
pushd nnn-3.5
# Developer guides · jarun/nnn Wiki · GitHub https://github.com/jarun/nnn/wiki/Developer-guides
# Advanced use cases · jarun/nnn Wiki · GitHub https://github.com/jarun/nnn/wiki/Advanced-use-cases#file-icons
# Enable PCRE regexp engine instead of default POSIX
# Enable NERD font icons
sudo make O_PCRE=1 O_NERD=1 strip install
popd
rm -rf nnn-v3.5.tar.gz nnn-3.5/
popd
# Home · Universal Ctags https://ctags.io/
brew install --HEAD --with-jansson universal-ctags/universal-ctags/universal-ctags
# Kubernetes CLI
brew install kubernetes-cli
# Krew – kubectl plugin manager - (https://krew.sigs.k8s.io/)
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
kubectl krew update
kubectl krew install ctx explore fuzzy ice krew ktop lineage ns resource-capacity status stern view-allocations view-secret whoami
# [kubefwd - Kubernetes Service Forwarding](https://kubefwd.com/)
brew install txn2/tap/kubefwd
# Telepresence - https://www.telepresence.io/
curl -fL https://app.getambassador.io/download/tel2oss/releases/download/v2.17.1/telepresence-darwin-arm64 -o /usr/local/bin/telepresence
chmod a+x /usr/local/bin/telepresence
# AWS CLI
brew install awscli
# [Pulumi - Infrastructure as Code in Any Programming Language](https://www.pulumi.com/)
brew install pulumi/tap/pulumi
# ===============================
# GUI apps from 'brew cask'
# ================================
# Karabiner and key code viewers
brew cask install karabiner-elements
brew cask install key-codes
# Postman
brew cask install postman
# Docker
brew cask install virtualbox
brew cask install docker
brew install docker-credential-helper-ecr
# OSXFuse and NTFS-3g
brew cask install osxfuse
brew install ntfs-3g
brew cask install macfusion-ng
brew install sshfs
# newmarcel/KeepingYouAwake: Prevents your Mac from going to sleep. - https://github.com/newmarcel/KeepingYouAwake
# Alternative for caffeine/amphetamine
brew cask install keepingyouawake
# Calculator
brew cask install speedcrunch
# Video player
brew cask install vlc
# Platypus is a developer tool that creates native Mac applications from command line scripts
# such as shell scripts or Python, Perl, Ruby, Tcl, JavaScript and PHP programs.
# This is done by wrapping the script in a macOS application bundle along with an app binary that runs the script.
brew cask install platypus
# [Arc from The Browser Company](https://arc.net/)
brew install --cask arc
# [Tunnelblick | Free open source OpenVPN VPN client server software for macOS](https://tunnelblick.net/)
brew install --cask tunnelblick