relevance / etc

bash scripts, aliases, other misc things go here

This URL has Read+Write access

etc / bash / ruby_switcher.sh
100644 186 lines (159 sloc) 6.112 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
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
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
 export GEM_PATH="~/.gem/ruby/1.8:/Library/Ruby/Gems/1.8:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8"
 update_path
}
 
function use_jruby {
 export MY_RUBY_HOME=~/.ruby_versions/jruby-1.3.1
 export GEM_HOME=~/.gem/jruby/1.8
 export GEM_PATH=~/.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
 export GEM_PATH=~/.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-20090610
 export GEM_HOME=~/.gem/ruby-enterprise/1.8
 export GEM_PATH=~/.gem/ruby-enterprise/1.8
 update_path
}
 
function install_ree_186 {
  echo "Clearing RUBYOPT environment variable. Was set to '$RUBYOPT'."
  export RUBYOPT=
 
  mkdir -p ~/tmp && mkdir -p ~/.ruby_versions &&
  pushd ~/tmp
  curl --silent -L -O http://rubyforge.org/frs/download.php/58677/ruby-enterprise-1.8.6-20090610.tar.gz &&
  tar xzf ruby-enterprise-1.8.6-20090610.tar.gz &&
  cd ruby-enterprise-1.8.6-20090610 &&
  ./installer -a $HOME/.ruby_versions/ruby-enterprise-1.8.6-20090610 --dont-install-useful-gems &&
  cd ~/tmp &&
  rm -rf ~/tmp/ruby-enterprise-1.8.6-20090610 ruby-enterprise-1.8.6-20090610.tar.gz &&
  use_ree_186 && install_rubygems_from_source "1.3.5" && install_rake &&
  popd
}
 
function use_ree_187 {
  export MY_RUBY_HOME=~/.ruby_versions/ruby-enterprise-1.8.7-2009.10
  export GEM_HOME=~/.gem/ruby/1.8.7
  export GEM_PATH=~/.gem/ruby/1.8.7
  update_path
}
 
function install_ree_187 {
  mkdir -p ~/tmp && mkdir -p ~/.ruby_versions && pushd ~/tmp
  curl --silent -L -O http://rubyforge.org/frs/download.php/66162/ruby-enterprise-1.8.7-2009.10.tar.gz &&
  tar xzf ruby-enterprise-1.8.7-2009.10.tar.gz && cd ruby-enterprise-1.8.7-2009.10 &&
  ./installer -a $HOME/.ruby_versions/ruby-enterprise-1.8.7-2009.10 --dont-install-useful-gems &&
  cd ~/tmp && rm -rf ~/tmp/ruby-enterprise-1.8.7-2009.10 ruby-enterprise-1.8.7-2009.10.tar.gz &&
  use_ree_187 && install_rake &&
  popd
}
 
function use_ruby_191 {
 export MY_RUBY_HOME=~/.ruby_versions/ruby-1.9.1-p243
 export GEM_HOME=~/.gem/ruby/1.9.1
 export GEM_PATH=~/.gem/ruby/1.9.1
 update_path
}
 
function install_ruby_191 {
  install_ruby_from_source "1.9" "1" "243" &&
  use_ruby_191 && install_rubygems_from_source "1.3.5" && 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
 export GEM_PATH=~/.gem/ruby/1.8
 update_path
}
 
function install_ruby_186 {
  install_ruby_from_source "1.8" "6" "369" &&
  use_ruby_186 && install_rubygems_from_source "1.3.5" && 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.7
 export GEM_PATH=~/.gem/ruby/1.8.7
 update_path
}
 
function install_ruby_187 {
  install_ruby_from_source "1.8" "7" "174" &&
  use_ruby_187 && install_rubygems_from_source "1.3.5" && 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_rubygems_from_source {
    local rubygems_version="rubygems-$1"
    local url="http://files.rubyforge.vm.bytemark.co.uk/rubygems/$rubygems_version.tgz"
 
    mkdir -p ~/tmp &&
    pushd ~/tmp &&
    curl --silent -L -O $url &&
    tar xzf $rubygems_version.tgz &&
    cd $rubygems_version &&
    ruby setup.rb -q && cd ~/tmp &&
    rm -rf $rubygems_version.tgz $rubygems_version &&
    popd
}
 
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