collections of gists
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

177 lines
3.2 KiB

#!/bin/bash
# http://redsymbol.net/articles/unofficial-bash-strict-mode/
set -euo pipefail
IFS=$'\n\t'
# inspired by
# https://gist.github.com/codeinthehole/26b37efa67041e1307db
# https://github.com/why-jay/osx-init/blob/master/install.sh
# https://github.com/timsutton/osx-vm-templates/blob/master/scripts/xcode-cli-tools.sh
# PRECONDITIONS
# 1)
# make sure the file is executable
# chmod +x osx_bootstrap.sh
#
# 2)
# Your password may be necessary for some packages
#
# 3)
# https://docs.brew.sh/Installation#macos-requirements
xcode-select --install
# `set -eu` causes an 'unbound variable' error in case SUDO_USER is not set
SUDO_USER=$(whoami)
# Check for Homebrew, install if not installed
if test ! $(which brew); then
echo "Installing homebrew..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
fi
# Upgrade brew
brew upgrade
# find the CLI Tools update
echo "find CLI tools update"
PROD=$(softwareupdate -l | grep "\*.*Command Line" | head -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | tr -d '\n') || true
# install it
if [[ ! -z "$PROD" ]]; then
softwareupdate -i "$PROD" --verbose
fi
echo "install gnu tools and utilities"
# GNU core utilities
brew install coreutils
brew install gnu-sed
brew install gnu-tar
brew install gnu-indent
brew install gnu-which
# GNU tools
brew install findutils
echo "install java"
# https://github.com/AdoptOpenJDK/homebrew-openjdk
brew tap AdoptOpenJDK/openjdk
brew install --cask adoptopenjdk
brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk11
brew install --cask adoptopenjdk14
brew install --cask adoptopenjdk15
PACKAGES=(
alfred
asciinema
atom
bash
ack
autoconf
automake
autojump
aws-iam-authenticator
boot2docker
ffmpeg
fx
gettext
gifsicle
git
graphviz
gradle
golang
gnupg
hub
httpie
kotlin
kubernetes-cli
kubernetes-helm
maven
imagemagick
jq
jpegoptim
libjpeg
libmemcached
lynx
markdown
memcached
mercurial
minikube
npm
nvm
netron
node
optipng
pkg-config
postgresql
python
python3
pypy
rabbitmq
ripgrep
rename
ssh-copy-id
tig
terminal-notifier
tesseract
the_silver_searcher
tmux
tree
yamllint
vim
watch
wget
)
echo "Installing packages..."
brew install ${PACKAGES[@]}
CASKS=(
atom
android-studio
chromium
docker
firefox
gimp
google-chrome
intellij-idea-ce
keepingyouawake
miro
protopie
rectangle
slack
thunderbird
vagrant
virtualbox
visual-studio-code
vlc
zoom
)
echo "Installing cask apps..."
sudo -u $SUDO_USER brew install --cask ${CASKS[@]}
echo "Installing Python packages..."
sudo -u $SUDO_USER pip3 install --upgrade pip
sudo -u $SUDO_USER pip3 install --upgrade setuptools
PYTHON_PACKAGES=(
ipython
virtualenv
virtualenvwrapper
)
sudo -u $SUDO_USER pip3 install ${PYTHON_PACKAGES[@]}
echo "Installing global npm packages..."
sudo -u $SUDO_USER npm install marked -g
echo "Cleaning up..."
brew cleanup
echo "brew update"
brew update
echo "brew upgrade"
brew upgrade
echo "brew doctor"
brew doctor
echo "OSX bootstrapping done"