forked from utkukaynar/builder
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmac.sh
More file actions
100 lines (74 loc) · 2.63 KB
/
mac.sh
File metadata and controls
100 lines (74 loc) · 2.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/usr/bin/env zsh
## Exit trap
trap 'ret=$?; test $ret -ne 0 && printf "failed\n\n" >&2; exit $ret' EXIT
set -e
## Check home bin
if [ ! -d "$HOME/.bin/" ]; then
mkdir "$HOME/.bin"
fi
if [[ ":$PATH:" != *":$HOME/.bin:"* ]]; then
echo 'export PATH="$HOME/.bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
fi
## Fancy echo
fancy_echo() {
printf "\n%b\n" "$1"
}
## Zsh fix
if [[ -f /etc/zshenv ]]; then
fancy_echo "Fixing OSX zsh environment bug ..."
sudo mv /etc/{zshenv,zshrc}
fi
## Homebrew
fancy_echo "Installing Homebrew, a good OS X package manager ..."
ruby <(curl -fsS https://raw.github.com/mxcl/homebrew/go)
brew update
if ! grep -qs "recommended by brew doctor" ~/.zshrc; then
fancy_echo "Put Homebrew location earlier in PATH ..."
echo "\n# recommended by brew doctor" >> ~/.zshrc
echo "export PATH='/usr/local/bin:$PATH'\n" >> ~/.zshrc
source ~/.zshrc
fi
## Oh my zsh
fancy_echo "Installing Oh my zsh, community-driven framework for managing your ZSH configuration ..."
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
## Redis
fancy_echo "Installing Redis, a good key-value database ..."
brew install redis
## Mac companents
fancy_echo "Installing ImageMagick, to crop and resize images ..."
brew install imagemagick
fancy_echo "Installing QT, used by Capybara Webkit for headless Javascript integration testing ..."
brew install qt
fancy_echo "Installing watch, to execute a program periodically and show the output ..."
brew install watch
## Rbenv
fancy_echo "Installing rbenv, to change Ruby versions ..."
brew install rbenv
if ! grep -qs "rbenv init" ~/.zshrc; then
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
fancy_echo "Enable shims and autocompletion ..."
eval "$(rbenv init -)"
fi
source ~/.zshrc
# fancy_echo "Installing rbenv-gem-rehash so the shell automatically picks up binaries after installing gems with binaries..."
# brew install rbenv-gem-rehash
fancy_echo "Installing ruby-build, to install Rubies ..."
brew install ruby-build
## Compoler and libraries
fancy_echo "Installing GNU Compiler Collection, a necessary prerequisite to installing Ruby ..."
brew tap homebrew/dupes
brew install apple-gcc42
fancy_echo "Upgrading and linking OpenSSL ..."
brew install openssl
export CC=gcc-4.2
## Ruby environment
fancy_echo "Installing Ruby 2.3.1 ..."
rbenv install 2.3.1
fancy_echo "Setting Ruby 2.3.1 as global default Ruby ..."
rbenv global 2.3.1
rbenv rehash
fancy_echo "Updating to latest Rubygems version ..."
gem update --system
fancy_echo "Installing critical Ruby gems for Rails development ..."
gem install bundler pg rails