Skip to content

Instantly share code, notes, and snippets.

@adamhl8
Last active June 27, 2023 18:31
Show Gist options
  • Save adamhl8/652ab4ae6cb50593fd8b52da542ef50f to your computer and use it in GitHub Desktop.
Save adamhl8/652ab4ae6cb50593fd8b52da542ef50f to your computer and use it in GitHub Desktop.
Mac Setup
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
zshrc="${HOME}/.zshrc"
ohmyzsh="${HOME}/.oh-my-zsh"
sudo -v
cd "${HOME}"
read -r -p "Enter your First and Last name: " firstlast
read -r -p "Enter your SWF email: " email
read -r -p "Enter your GitLab PAT: " GITLAB_PAT
echo "Cleaning up..."
sudo rm -rf "${HOME}/.npm"
sudo rm -rf "${HOME}/.nvm"
sudo rm -rf "${ohmyzsh}.old"
sudo rm -f "${zshrc}.old"
[ -e "${ohmyzsh}" ] && mv "${ohmyzsh}" "${ohmyzsh}.old"
[ -e "${zshrc}" ] && mv "${zshrc}" "${zshrc}.old"
xcode-select --install 2>/dev/null || true
echo
read -rsn1 -p "WAIT FOR XCODE DEV TOOLS TO FINISH INSTALLING. Once done, press any key to continue."
echo;echo
sudo xcodebuild -license accept
echo "Installing oh-my-zsh..."
export RUNZSH="no"
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
echo "Installing homebrew..."
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >>"${HOME}/.zshrc"
eval "$(/opt/homebrew/bin/brew shellenv)"
echo "Installing nvm..."
brew install nvm
echo "Installing OpenJDK 17..."
brew install openjdk@17
echo 'export PATH="$HOMEBREW_PREFIX/opt/openjdk@17/bin:$PATH"' >>"${HOME}/.zshrc"
export PATH="$HOMEBREW_PREFIX/opt/openjdk@17/bin:$PATH"
echo "Installing IntelliJ..."
brew install --cask intellij-idea
echo "Installing Docker..."
brew install --cask docker
echo "Installing iTerm2..."
brew install --cask iterm2
echo "Installing Rectangle..."
brew install --cask rectangle
tee -a "${zshrc}" >/dev/null <<EOF
export NVM_DIR="$HOME/.nvm"
[ -s "$HOMEBREW_PREFIX/opt/nvm/nvm.sh" ] && \. "$HOMEBREW_PREFIX/opt/nvm/nvm.sh" # This loads nvm
[ -s "$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm" ] && \. "$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
EOF
export NVM_DIR="$HOME/.nvm"
[ -s "$HOMEBREW_PREFIX/opt/nvm/nvm.sh" ] && \. "$HOMEBREW_PREFIX/opt/nvm/nvm.sh"
[ -s "$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm" ] && \. "$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm"
echo "Installing node LTS..."
nvm install --lts
npm install -g npm
echo "Installing yarn..."
npm install -g yarn
echo "Setting up .gitconfig..."
git config --global user.name "${firstlast}"
git config --global user.email "${email}"
git config --global user.password "${GITLAB_PAT}"
echo "export GITLAB_PAT=${GITLAB_PAT}" | tee -a "${zshrc}" >/dev/null
echo 'export CI_JOB_TOKEN=${GITLAB_PAT}' | tee -a "${zshrc}" >/dev/null
echo
echo "Checking that binaries are on PATH:"
echo "nvm: $(nvm --version)"
echo "node: $(node --version)"
echo "npm: $(npm --version)"
echo "yarn: $(yarn --version)"
echo "java: $(java --version)"
echo
echo "Please restart your terminal."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment