Created
August 22, 2023 01:16
-
-
Save dikaio/c66742f0fccb0021c844b5d54c0b9035 to your computer and use it in GitHub Desktop.
Custom laptop.local for Thoughtbot's laptop script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
taps=( | |
"denji/nginx" | |
"heroku/brew" | |
"homebrew-ffmpeg/ffmpeg" | |
"homebrew/services" | |
"twilio/brew" | |
"universal-ctags/universal-ctags" | |
) | |
formulas=( | |
"autoconf" | |
"automake" | |
"assimp" | |
"awscli" | |
"cmake" | |
"coreutils" | |
"ffmpeg" | |
"findutils" | |
"flyctl" | |
"gh" | |
"git" | |
"heroku" | |
"htop" | |
"hunspell" | |
"imagemagick" | |
"jq" | |
"libevent" | |
"libffi" | |
"libmng" | |
"libpq" | |
"libressl" | |
"libtool" | |
"libyaml" | |
"llm" | |
"md4c" | |
"miniupnpc" | |
"molten-vk" | |
"moreutils" | |
"ncurses" | |
"nginx" | |
"ninja" | |
"openssl" | |
"pkg-config" | |
"postgresql@14" | |
"pulumi" | |
"qt" | |
"rclone" | |
"rcm" | |
"redis" | |
"shellcheck" | |
"stripe" | |
"the_silver_searcher" | |
"tmux" | |
"unbound" | |
"universal-ctags" | |
"vim" | |
"vulkan-headers" | |
"vulkan-loader" | |
"watch" | |
"wget" | |
"wiki" | |
"yarn" | |
"zsh" | |
) | |
casks=( | |
"1password" | |
"arq" | |
"copilot" | |
"dash" | |
"daisydisk" | |
"discord" | |
"downie" | |
"fig" | |
"figma" | |
"firefox" | |
"github" | |
"google-chrome" | |
"gpg-suite-no-mail" | |
"grammarly-desktop" | |
"iconjar" | |
"iterm2" | |
"linear-linear" | |
"mullvadvpn" | |
"openphone" | |
"permute" | |
"raindropio" | |
"raycast" | |
"responsively" | |
"signal" | |
"sketch" | |
"slack" | |
"tableplus" | |
"tradingview" | |
"transmit" | |
"visual-studio-code" | |
) | |
installed_taps=$(brew tap) | |
for tap in "${taps[@]}"; do | |
if [[ $installed_taps != *"$tap"* ]]; then | |
echo "Tapping: $tap..." | |
brew tap $tap | |
else | |
echo "Tap already installed: $tap" | |
fi | |
done | |
installed_formulas=$(brew list) | |
for cask in "${casks[@]}"; do | |
if [[ $installed_casks != *"$cask"* ]]; then | |
echo "Installing cask: $cask..." | |
brew install --cask $cask | |
else | |
echo "Updating cask: $cask..." | |
brew upgrade --cask $cask | |
fi | |
done | |
installed_casks=$(brew list --cask) | |
for formula in "${formulas[@]}"; do | |
if [[ $installed_formulas != *"$formula"* ]]; then | |
echo "Installing formula: $formula..." | |
brew install $formula | |
else | |
echo "Updating formula: $formula..." | |
brew upgrade $formula | |
brew cleanup $formula | |
fi | |
done | |
desired_plugins=( | |
"ruby" | |
"nodejs" | |
"rust" | |
"haskell" | |
"caddy" | |
"cloudflared" | |
"1password-cli" | |
"clojure" | |
"deno" | |
"erlang" | |
"elixir" | |
"golang" | |
"hasura-cli" | |
"java" | |
"julia" | |
"kotlin" | |
"lua" | |
"ocaml" | |
"packer" | |
"pnpm" | |
"pulumi" | |
"python" | |
"rclone" | |
"rust" | |
"scala" | |
"sqlite" | |
"terraform" | |
"venom" | |
"vault" | |
"zig" | |
) | |
installed_plugins=$(asdf plugin list) | |
for plugin in "${desired_plugins[@]}"; do | |
if [[ $installed_plugins != *"$plugin"* ]]; then | |
echo "Installing $plugin..." | |
asdf plugin add $plugin | |
else | |
echo "Updating $plugin..." | |
asdf plugin update $plugin | |
fi | |
done | |
asdf reshim | |
echo "Done!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment