Skip to content

Instantly share code, notes, and snippets.

@dikaio
Created August 22, 2023 01:16
Show Gist options
  • Save dikaio/c66742f0fccb0021c844b5d54c0b9035 to your computer and use it in GitHub Desktop.
Save dikaio/c66742f0fccb0021c844b5d54c0b9035 to your computer and use it in GitHub Desktop.
Custom laptop.local for Thoughtbot's laptop script
#!/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