My ideal setup for my MacBook Pro - single script to run. And the script should be maintained as in a repo (getting there). Shouldn’t be any different for any other computer running recent versions of MacOS X.

My current script

Will require to enter your password during the process.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap caskroom/cask
brew tap caskroom/versions

xcode-select --install
brew install wget openssl
brew install maven gradle httpie jq node git
brew install mysql

brew cask install java8
brew cask install sourcetree
brew cask install slack
brew cask install atom #and/or Sublime Text, Textmate
brew cask install google-chrome
brew cask install viber
brew cask install docker
open /Applications/Docker.app #need to start it to set it up

#Kubernetes, Google Cloud Platform (GCP), Pivotal Cloud Foundry (PCF), BOSH, Terraform
brew tap cloudfoundry/tap
brew tap pivotal/tap
brew install kubectl cf-cli bosh-cli terraform
brew cask install google-cloud-sdk

Other useful tools

Tools

brew cask install iterm2
brew cask install shiftit
brew cask install yujitach-menumeters
brew cask install trolcommander

brew cask install postman

Productivity

brew cask install evernote
brew cask install skitch
brew tap caskroom/fonts
brew cask install font-hack-nerd-font
#set `Hack Nerd Font` in your terminal

#Bash-it!
git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
~/.bash_it/install.sh
#edit ~/.bash_profile to change theme to `export BASH_IT_THEME='powerline'`
#https://github.com/Bash-it/bash-it/wiki/Themes#powerline-naked
nano ~/.bash_profile
reload
#or cd into a git repo folder and run the following to try all themes
BASH_PREVIEW=true reload

#Fish shell - just try it out!!
brew install fish
curl -L github.com/oh-my-fish/oh-my-fish/raw/master/bin/install | fish
omf help
omf install bobthefish
omf reload

Video player and file associations

brew cask install mpv
brew install duti
duti -s io.mpv mkv all
duti -s io.mpv avi all
duti -s io.mpv mp4 all

Transfer files between Mac and Android devices

https://www.android.com/filetransfer/

EncFS cross-platform and cloud-friendly folder encryption

brew cask install osxfuse
brew install encfs

SSH FS to be able to mount filesystem over SSH

brew cask install osxfuse
brew install sshfs
#sshfs root@10.0.1.1:/var/www ~/Documents/mount

Google Cloud SDK and command line

brew cask install google-cloud-sdk
brew install kubectl

And/or use Pivotal goodies

mkdir -p ~/work/tools
cd ~/work/tools
git clone https://github.com/pivotal/workstation-setup.git
cd workstation-setup
./setup.sh java8 golang

List of installed packages

○ → brew tap
caskroom/cask
caskroom/versions
cloudfoundry/tap
git-duet/tap
homebrew/core
homebrew/services
jcgay/jcgay
pivotal/tap
seattle-beach/tap

○ → brew list
autoconf		gradle			python
bbl			grc			rbenv
bosh-cli		jq			readline
cf-cli			libidn2			ruby-build
coreutils		libssh2			springboot
direnv			libunistring		sqlite
gdbm			maven-deluxe		terraform
gettext			oniguruma		the_silver_searcher
git			openssl			watch
git-duet		pcre			wget
git-pair		pkg-config		xz
git-together		pstree

○ → brew cask list
atom           github         macvim         skype          textmate
dash           intellij-idea  postman        slack          viber
firefox        java8          rowanj-gitx    sourcetree     virtualbox
flycut         macdown        shiftit        sublime-text   zoomus

Git pretty log:

git config --global alias.plog "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

Links

Additional notes

Also found the following script to install an app from a *.dmg in a a scripted way. Haven’t used it yet though.

temp=$TMPDIR$(uuidgen)
mkdir -p $temp/mount
curl https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg > $temp/1.dmg
yes | hdiutil attach -noverify -nobrowse -mountpoint $temp/mount $temp/1.dmg
cp -r $temp/mount/*.app /Applications
hdiutil detach $temp/mount
rm -r $temp