-
Notifications
You must be signed in to change notification settings - Fork 24
/
mac.sh
101 lines (74 loc) · 2.61 KB
/
mac.sh
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
101
#!/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 ..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
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 ..."
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.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
fancy_echo "Upgrading and linking OpenSSL ..."
brew install openssl
#export CC=gcc-4.2
## Ruby environment
fancy_echo "Installing Ruby 3.1.1 ..."
rbenv install 3.1.1
fancy_echo "Setting Ruby 3.1.1 as global default Ruby ..."
rbenv global 3.1.1
rbenv rehash
fancy_echo "Updating to latest Rubygems version ..."
sudo gem update --system
fancy_echo "Installing critical Ruby gems for Rails development ..."
gem install rails
fancy_echo "Installing postgresql..."
brew install postgresql
fancy_echo "Installing git-flow..."
brew install git-flow