Last active
November 2, 2015 15:26
-
-
Save marioacarvalho/d85b78abc9f2e85f3b54 to your computer and use it in GitHub Desktop.
Bundle install software OS X
This file contains 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/sh | |
export HOMEBREW_CASK_OPTS="--appdir=/Applications" | |
brew_tap 'caskroom/cask' | |
brew_install_or_upgrade 'brew-cask' | |
echo Install all AppStore Apps at first! | |
brew cask install dropbox | |
brew cask install google-chrome | |
brew cask install sourcetree | |
brew cask install slack | |
brew cask install skype | |
brew cask install google-drive | |
brew cask install fabric | |
brew cask install sublime-text | |
brew cask install bee | |
brew cask install charles | |
brew cask install spotify | |
brew cask install sonos | |
gem install cocoapods | |
#gem_install_or_update ‘cocoapods’ |
This file contains 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/sh | |
# Welcome to the thoughtbot laptop script! | |
# Be prepared to turn your laptop (or desktop, no haters here) | |
# into an awesome development machine. | |
fancy_echo() { | |
local fmt="$1"; shift | |
# shellcheck disable=SC2059 | |
printf "\n$fmt\n" "$@" | |
} | |
append_to_zshrc() { | |
local text="$1" zshrc | |
local skip_new_line="${2:-0}" | |
if [ -w "$HOME/.zshrc.local" ]; then | |
zshrc="$HOME/.zshrc.local" | |
else | |
zshrc="$HOME/.zshrc" | |
fi | |
if ! grep -Fqs "$text" "$zshrc"; then | |
if [ "$skip_new_line" -eq 1 ]; then | |
printf "%s\n" "$text" >> "$zshrc" | |
else | |
printf "\n%s\n" "$text" >> "$zshrc" | |
fi | |
fi | |
} | |
trap 'ret=$?; test $ret -ne 0 && printf "failed\n\n" >&2; exit $ret' EXIT | |
set -e | |
if [ ! -d "$HOME/.bin/" ]; then | |
mkdir "$HOME/.bin" | |
fi | |
if [ ! -f "$HOME/.zshrc" ]; then | |
touch "$HOME/.zshrc" | |
fi | |
# shellcheck disable=SC2016 | |
append_to_zshrc 'export PATH="$HOME/.bin:$PATH"' | |
case "$SHELL" in | |
*/zsh) : ;; | |
*) | |
fancy_echo "Changing your shell to zsh ..." | |
chsh -s "$(which zsh)" | |
;; | |
esac | |
brew_install_or_upgrade() { | |
if brew_is_installed "$1"; then | |
if brew_is_upgradable "$1"; then | |
fancy_echo "Upgrading %s ..." "$1" | |
brew upgrade "$@" | |
else | |
fancy_echo "Already using the latest version of %s. Skipping ..." "$1" | |
fi | |
else | |
fancy_echo "Installing %s ..." "$1" | |
brew install "$@" | |
fi | |
} | |
brew_is_installed() { | |
local name="$(brew_expand_alias "$1")" | |
brew list -1 | grep -Fqx "$name" | |
} | |
brew_is_upgradable() { | |
local name="$(brew_expand_alias "$1")" | |
! brew outdated --quiet "$name" >/dev/null | |
} | |
brew_tap() { | |
brew tap "$1" 2> /dev/null | |
} | |
brew_expand_alias() { | |
brew info "$1" 2>/dev/null | head -1 | awk '{gsub(/:/, ""); print $1}' | |
} | |
brew_launchctl_restart() { | |
local name="$(brew_expand_alias "$1")" | |
local domain="homebrew.mxcl.$name" | |
local plist="$domain.plist" | |
fancy_echo "Restarting %s ..." "$1" | |
mkdir -p "$HOME/Library/LaunchAgents" | |
ln -sfv "/usr/local/opt/$name/$plist" "$HOME/Library/LaunchAgents" | |
if launchctl list | grep -Fq "$domain"; then | |
launchctl unload "$HOME/Library/LaunchAgents/$plist" >/dev/null | |
fi | |
launchctl load "$HOME/Library/LaunchAgents/$plist" >/dev/null | |
} | |
gem_install_or_update() { | |
if gem list "$1" --installed > /dev/null; then | |
fancy_echo "Updating %s ..." "$1" | |
gem update "$@" | |
else | |
fancy_echo "Installing %s ..." "$1" | |
gem install "$@" | |
rbenv rehash | |
fi | |
} | |
if ! command -v brew >/dev/null; then | |
fancy_echo "Installing Homebrew ..." | |
curl -fsS \ | |
'https://raw.githubusercontent.com/Homebrew/install/master/install' | ruby | |
append_to_zshrc '# recommended by brew doctor' | |
# shellcheck disable=SC2016 | |
append_to_zshrc 'export PATH="/usr/local/bin:$PATH"' 1 | |
export PATH="/usr/local/bin:$PATH" | |
else | |
fancy_echo "Homebrew already installed. Skipping ..." | |
fi | |
fancy_echo "Updating Homebrew formulas ..." | |
brew update | |
brew_install_or_upgrade 'zsh' | |
brew_install_or_upgrade 'git' | |
brew_install_or_upgrade 'reattach-to-user-namespace' | |
brew_install_or_upgrade 'node' | |
brew_install_or_upgrade 'rbenv' | |
brew_install_or_upgrade 'ruby-build' | |
# shellcheck disable=SC2016 | |
append_to_zshrc 'eval "$(rbenv init - --no-rehash zsh)"' 1 | |
brew_install_or_upgrade 'openssl' | |
brew unlink openssl && brew link openssl --force | |
brew_install_or_upgrade 'libyaml' | |
ruby_version="$(curl -sSL http://ruby.thoughtbot.com/latest)" | |
eval "$(rbenv init - zsh)" | |
if ! rbenv versions | grep -Fq "$ruby_version"; then | |
rbenv install -s "$ruby_version" | |
fi | |
rbenv global "$ruby_version" | |
rbenv shell "$ruby_version" | |
gem update --system | |
gem_install_or_update 'bundler' | |
fancy_echo "Configuring Bundler ..." | |
number_of_cores=$(sysctl -n hw.ncpu) | |
bundle config --global jobs $((number_of_cores - 1)) | |
if ! command -v rcup >/dev/null; then | |
brew_tap 'thoughtbot/formulae' | |
brew_install_or_upgrade 'rcm' | |
fi | |
if [ -f "$HOME/.laptop.local" ]; then | |
. "$HOME/.laptop.local" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment