/
ruby_switcher.sh
144 lines (123 loc) · 4.28 KB
/
ruby_switcher.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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
export ORIGINAL_PATH=$PATH
function use_leopard_ruby {
export MY_RUBY_HOME=/System/Library/Frameworks/Ruby.framework/Versions/Current/usr
export GEM_HOME=~/.gem/ruby/1.8
update_path
}
function use_jruby {
export MY_RUBY_HOME=~/.ruby_versions/jruby-1.3.1
export GEM_HOME=~/.gem/jruby/1.8
alias ruby_ng="jruby --ng"
alias ruby_ng_server="jruby --ng-server"
update_path
}
function install_jruby {
mkdir -p ~/.ruby_versions && pushd ~/.ruby_versions &&
curl -O -L --silent http://dist.codehaus.org/jruby/1.3.1/jruby-bin-1.3.1.zip &&
rm -rf jruby-1.3.1 &&
jar xf jruby-bin-1.3.1.zip &&
ln -sf ~/.ruby_versions/jruby-1.3.1/bin/jruby ~/.ruby_versions/jruby-1.3.1/bin/ruby &&
ln -sf ~/.ruby_versions/jruby-1.3.1/bin/jgem ~/.ruby_versions/jruby-1.3.1/bin/gem &&
ln -sf ~/.ruby_versions/jruby-1.3.1/bin/jirb ~/.ruby_versions/jruby-1.3.1/bin/irb &&
chmod +x ~/.ruby_versions/jruby-1.3.1/bin/{jruby,jgem,jirb,jrubyc} &&
cd ~/.ruby_versions/jruby-1.3.1/tool/nailgun && make &&
rm -rf ~/.ruby_versions/jruby-bin-1.3.1.zip &&
use_jruby && install_jruby_openssl && install_rake &&
popd
}
function use_jruby_120 {
export MY_RUBY_HOME=~/.ruby_versions/jruby-1.2.0
export GEM_HOME=~/.gem/jruby/1.8
update_path
}
function install_jruby_120 {
mkdir -p ~/.ruby_versions && pushd ~/.ruby_versions &&
curl -O -L --silent http://dist.codehaus.org/jruby/1.2.0/jruby-bin-1.2.0.zip &&
rm -rf jruby-1.2.0 &&
jar xf jruby-bin-1.2.0.zip &&
ln -sf ~/.ruby_versions/jruby-1.2.0/bin/jruby ~/.ruby_versions/jruby-1.2.0/bin/ruby &&
ln -sf ~/.ruby_versions/jruby-1.2.0/bin/jgem ~/.ruby_versions/jruby-1.2.0/bin/gem &&
ln -sf ~/.ruby_versions/jruby-1.2.0/bin/jirb ~/.ruby_versions/jruby-1.2.0/bin/irb &&
chmod +x ~/.ruby_versions/jruby-1.2.0/bin/{jruby,jgem,jirb} &&
rm -rf ~/.ruby_versions/jruby-bin-1.2.0.zip &&
use_jruby_120 && install_jruby_openssl && install_rake &&
popd
}
function use_ree_186 {
export MY_RUBY_HOME=~/.ruby_versions/ruby-enterprise-1.8.6-20090421
export GEM_HOME=~/.gem/ruby/1.8
update_path
}
function install_ree_20090421 {
mkdir -p ~/tmp && mkdir -p ~/.ruby_versions &&
pushd ~/tmp
curl --silent -L -O http://rubyforge.org/frs/download.php/55511/ruby-enterprise-1.8.6-20090421.tar.gz &&
tar xzf ruby-enterprise-1.8.6-20090421.tar.gz &&
cd ruby-enterprise-1.8.6-20090421 &&
./installer -a $HOME/.ruby_versions/ruby-enterprise-1.8.6-20090421 --dont-install-useful-gems &&
cd ~/tmp &&
rm -rf ~/tmp/ruby-enterprise-1.8.6-20090421 ruby-enterprise-1.8.6-20090421.tar.gz &&
use_ree_186 && install_rake &&
popd
}
function use_ruby_191 {
export MY_RUBY_HOME=~/.ruby_versions/ruby-1.9.1-p129
export GEM_HOME=~/.gem/ruby/1.9
update_path
}
function install_ruby_191 {
install_ruby_from_source "1.9" "1" "129" &&
use_ruby_191 && install_rake && popd
}
function use_ruby_186 {
export MY_RUBY_HOME=~/.ruby_versions/ruby-1.8.6-p369
export GEM_HOME=~/.gem/ruby/1.8
update_path
}
function install_ruby_186 {
install_ruby_from_source "1.8" "6" "369" &&
use_ruby_186 && install_rake && popd
}
function use_ruby_187 {
export MY_RUBY_HOME=~/.ruby_versions/ruby-1.8.7-p174
export GEM_HOME=~/.gem/ruby/1.8
update_path
}
function install_ruby_187 {
install_ruby_from_source "1.8" "7" "174" &&
use_ruby_187 && install_rake && popd
}
function install_ruby_from_source {
local ruby_major=$1
local ruby_minor=$2
local patch_level=$3
local ruby_version="ruby-$1.$2-p$patch_level"
local url="ftp://ftp.ruby-lang.org/pub/ruby/$ruby_major/$ruby_version.tar.gz"
mkdir -p ~/tmp && mkdir -p ~/.ruby_versions && rm -rf ~/.ruby_versions/$ruby_version &&
pushd ~/tmp &&
curl --silent -L -O $url &&
tar xzf $ruby_version.tar.gz &&
cd $ruby_version &&
./configure --prefix=$HOME/.ruby_versions/$ruby_version --enable-shared &&
make && make install && cd ~/tmp &&
rm -rf $ruby_version.tar.gz $ruby_version
}
function install_rake {
gem install -q --no-ri --no-rdoc rake
}
function install_jruby_openssl {
gem install -q --no-ri --no-rdoc jruby-openssl
}
function update_path {
export PATH=$GEM_HOME/bin:$MY_RUBY_HOME/bin:$ORIGINAL_PATH
export RUBY_VERSION="$(ruby -v | colrm 11)"
display_ruby_version
}
function display_ruby_version {
if [[ $SHELL =~ "bash" ]]; then
echo "Using `ruby -v`"
fi
# On ZSH, show it on the right PS1
export RPS1=$RUBY_VERSION
}
use_leopard_ruby