-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbootstrap.sh
135 lines (117 loc) · 4.42 KB
/
bootstrap.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
#!/usr/bin/env bash
script_dir="${BASH_SOURCE%/*}"
# Symlink configs
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.config/atuin/ "$HOME"/.config/atuin
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.config/gitui/ "$HOME"/.config/gitui
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.config/helix/ "$HOME"/.config/helix
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.config/mise/ "$HOME"/.config/mise
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.config/nvim/ "$HOME"/.config/nvim
cp "$HOME"/data/dev/dotfiles/dotfiles/.gitconfig "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.gitignore "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.gitignore_global "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.myclirc "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.psqlrc "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.psqlrc "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.vale.ini "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.wezterm "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.zshenv "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/.zshrc "$HOME"
ln -s "$HOME"/data/dev/dotfiles/dotfiles/my-zsh.zsh-theme "$HOME"/.oh-my-zsh/custom/themes
# Xcode tools
xcode-select --install
# rustup ❤️
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Cargo bins ❤️
/bin/bash "$script_dir"/bin/update_cargo_bins.sh
# Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew analytics off
brew update
brew doctor --verbose
# Requirements for PHP...
# https://github.com/asdf-community/asdf-php/blob/1eaf4de9b86bd0a45aa7ac3698d01d646a9b1037/.github/workflows/workflow.yml#L52
brew install autoconf automake bison freetype gd gettext icu4c krb5 libedit libiconv libjpeg libpng libxml2 libzip pkg-config re2c zlib \
# Requirements for Erlang...
# https://github.com/asdf-vm/asdf-erlang?tab=readme-ov-file#osx
openssl@1 \
wxwidgets \
# Requirements for Erlang...
# https://github.com/asdf-vm/asdf-erlang?tab=readme-ov-file#use
CC="/usr/bin/clang -I$(brew --prefix openssl)/include"
export CC
LDFLAGS="-L$(brew --prefix openssl)/lib:$LDFLAGS"
export LDFLAGS
KERL_CONFIGURE_OPTIONS="--without-javac --with-ssl=$(brew --prefix openssl)"
export KERL_CONFIGURE_OPTIONS
mise self-update
mise upgrade
# Homebrew apps
brew install \
awscli \
gh \
git \
jq \
kube-ps1 \
kubectx \
kustomize \
lftp \
libpq \
librdkafka \
mycli \
stern \
txn2/tap/kubefwd \
vegeta \
zsh \
brew link libpq --force
# Homebrew casks
brew tap homebrew/cask-versions
brew install \
alt-tab --cask \
appcleaner \
bitbar \
chromedriver \
discord \
firefox \
google-chrome \
keepingyouawake \
orbstack \
rectangle \
slack \
telegram \
the-unarchiver \
transmission --cask \
vlc \
wezterm@nightly --cask --no-quarantine --greedy-latest \
whatsapp \
# 🥲 https://wezfurlong.org/wezterm/faq.html#how-do-i-enable-undercurl-curly-underlines
tempfile=$(mktemp) \
&& curl -o "$tempfile" https://raw.githubusercontent.com/wez/wezterm/master/termwiz/data/wezterm.terminfo \
&& tic -x -o ~/.terminfo "$tempfile" \
&& rm "$tempfile" \
# Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# Requirements for nvim
brew install ninja cmake gettext curl
# Setup ~/.local/bin & ~/.dev_tools
cd ./yog &&
cargo build --release && \
cd - && \
rm -f "$HOME"/.local/bin/idt && \
ln -s "$HOME"/data/dev/dotfiles/dotfiles/yog/target/release/idt "$HOME"/.local/bin && \
rm -f "$HOME"/.local/bin/yghfl && \
ln -s "$HOME"/data/dev/dotfiles/dotfiles/yog/target/release/yghfl "$HOME"/.local/bin && \
rm -f "$HOME"/.local/bin/yhfp && \
ln -s "$HOME"/data/dev/dotfiles/dotfiles/yog/target/release/yhfp "$HOME"/.local/bin && \
rm -f "$HOME"/.local/bin/oe && \
ln -s "$HOME"/data/dev/dotfiles/dotfiles/yog/target/release/oe "$HOME"/.local/bin && \
rm -f "$HOME"/.local/bin/catl && \
ln -s "$HOME"/data/dev/dotfiles/dotfiles/yog/target/release/catl "$HOME"/.local/bin && \
rm -f "$HOME"/.local/bin/gcu && \
ln -s "$HOME"/data/dev/dotfiles/dotfiles/yog/target/release/gcu "$HOME"/.local/bin && \
rm -f "$HOME"/.local/bin/vpg && \
ln -s "$HOME"/data/dev/dotfiles/dotfiles/yog/target/release/vpg "$HOME"/.local/bin && \
"$HOME"/.local/bin/idt ~/.dev-tools ~/.local/bin && \
rm -f "$HOME"/.local/bin/update_* && \
ln -s "$HOME"/data/dev/dotfiles/dotfiles/bin/update_* "$HOME"/.local/bin
# Update & cleanup brew
/bin/bash "$script_dir"/bin/update_brew.sh