rvm 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/bash/rvm +113 -47
- metadata +1 -1
data/bash/rvm
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
rvm_author="Wayne E. Seguin"
|
4
4
|
rvm_author_email="wayneeseguin@gmail.com"
|
5
5
|
rvm_website="http://github.com/wayneeseguin/rvm"
|
6
|
-
rvm_version="0.0.
|
6
|
+
rvm_version="0.0.6"
|
7
7
|
rvm_updated="2009.08.23"
|
8
8
|
|
9
9
|
#
|
@@ -100,12 +100,12 @@ Usage
|
|
100
100
|
}
|
101
101
|
|
102
102
|
# Logging functions based on level
|
103
|
-
function log { echo -e "\n $* \e[0m
|
104
|
-
function debug { log "\e[4;34m <d> $*" ; }
|
105
|
-
function info { log "\e[0;32m <i> $*" ; }
|
106
|
-
function warn { log "\e[0;33m <w> $*" ; }
|
107
|
-
function error { log "\e[0;31m <e> $*" ; }
|
108
|
-
function fail { log "\e[0;31m <e> $*" ; return 1 ; }
|
103
|
+
function log { echo -e "\n $* \e[0m" ; }
|
104
|
+
function debug { log "\e[4;34m <d> \e[0m$*" ; }
|
105
|
+
function info { log "\e[0;32m <i> \e[0m$*" ; }
|
106
|
+
function warn { log "\e[0;33m <w> \e[0m$*" ; }
|
107
|
+
function error { log "\e[0;31m <e> \e[0m$*" ; }
|
108
|
+
function fail { log "\e[0;31m <e> \e[0m$*" ; return 1 ; }
|
109
109
|
|
110
110
|
function rvm-gi { gem install -q --no-rdoc --no-ri $* ; }
|
111
111
|
|
@@ -146,17 +146,33 @@ function rvm-install-source {
|
|
146
146
|
package_name="ruby-$major.$minor-p$level"
|
147
147
|
url="ftp://ftp.ruby-lang.org/pub/ruby/$major/$package_name.tar.gz"
|
148
148
|
|
149
|
-
|
149
|
+
info "Installing Ruby from source to: $install_path/$package_name"
|
150
|
+
mkdir -p $install_path/$package_name
|
151
|
+
|
152
|
+
pushd $source_path > /dev/null
|
150
153
|
if [ -d $package_name ] ; then
|
151
154
|
cd $package_name
|
152
155
|
else
|
153
|
-
if [ ! -f "$package_name.tar.gz" ] ; then
|
154
|
-
|
156
|
+
if [ ! -f "$package_name.tar.gz" ] ; then
|
157
|
+
info "\tDownloading $package_name, this may take a while depending on your connection..."
|
158
|
+
curl -O -L -s $url
|
159
|
+
fi
|
160
|
+
info "\tExtracting $package_name..."
|
161
|
+
tar xzf $package_name.tar.gz && cd $package_dir/
|
155
162
|
fi
|
156
|
-
|
163
|
+
|
164
|
+
info "\tConfiguring $package_name using ${configure-'--enable-shared'}, this may take a while depending on your cpu(s)..."
|
165
|
+
./configure --prefix=$install_path/$package_name ${configure-'--enable-shared'} > $install_path/$package_name/configure.log 2> $install_path/$package_name/configure.error.log
|
166
|
+
|
167
|
+
info "\tCompiling $package_name, this may take a while, depending on your cpu(s)..."
|
168
|
+
make > $install_path/$package_name/make.log 2> $install_path/$package_name/make.error.log
|
169
|
+
|
170
|
+
info "\tInstalling $package_name"
|
171
|
+
make install > $install_path/$package_name/install.log 2> $install_path/$package_name/install.error.log
|
157
172
|
chmod +x $install_path/$package_name/bin/*
|
158
173
|
|
159
174
|
# Now install rubygems for this ruby version.
|
175
|
+
info "\tInstalling rubygems dedicated to $package_name..."
|
160
176
|
gem_package_name="rubygems-1.3.5"
|
161
177
|
gem_url="http://rubyforge.org/frs/download.php/60718/$gem_package_name.tgz"
|
162
178
|
if [ -d $gem_package_name ] ; then
|
@@ -167,8 +183,14 @@ function rvm-install-source {
|
|
167
183
|
fi
|
168
184
|
# Well this is fun... fix nil error on require_paths:
|
169
185
|
sed -i '' "s/require_paths\.join/require_paths.to_a.join/" $source_path/$package_name/$gem_package_name/lib/rubygems/gem_path_searcher.rb
|
170
|
-
$install_path/$package_name/bin/ruby ./setup.rb
|
171
|
-
popd
|
186
|
+
$install_path/$package_name/bin/ruby ./setup.rb > $install_path/$package_name/rubygems.install.log 2> $install_path/$package_name/rubygems.install.error.log
|
187
|
+
popd > /dev/null
|
188
|
+
info "Installation of $package_name complete."
|
189
|
+
|
190
|
+
for gem_name in rake ; do
|
191
|
+
info "Installing $gem_name"
|
192
|
+
$install_path/$package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $install_path/$package_name/gems.install.log
|
193
|
+
done
|
172
194
|
|
173
195
|
}
|
174
196
|
|
@@ -181,40 +203,79 @@ function rvm-install-ruby {
|
|
181
203
|
patchlevel=${patchlevel-20090610}
|
182
204
|
package_name="ruby-enterprise-$version-$patchlevel"
|
183
205
|
url="http://rubyforge.org/frs/download.php/58677/$package_name.tar.gz"
|
184
|
-
|
206
|
+
info "Installing Ruby Enterprise Edition from source to: $install_path/$package_name"
|
207
|
+
pushd $source_path > /dev/null
|
185
208
|
if [ -d $package_name ] ; then
|
186
209
|
cd $package_name
|
187
210
|
else
|
188
|
-
if [ ! -f "$package_name.tar.gz" ] ; then
|
189
|
-
|
211
|
+
if [ ! -f "$package_name.tar.gz" ] ; then
|
212
|
+
info "\tDownloading $package_name, this may take a while depending on your connection..."
|
213
|
+
curl -O -L -s $url
|
214
|
+
fi
|
215
|
+
info "\tExtracting $package_name..."
|
216
|
+
tar xzf $package_name.tar.gz && cd $package_name
|
190
217
|
fi
|
191
|
-
|
192
|
-
|
218
|
+
|
219
|
+
info "\tInstalling $package_name, this may take a while, depending on your cpu(s)..."
|
220
|
+
mkdir -p $install_path/$package_name
|
221
|
+
./installer -a $install_path/ruby-enterprise-$version-$patchlevel --dont-install-useful-gems > $install_path/$package_name/install.log 2> $install_path/$package_name/install.error.log
|
193
222
|
chmod +x $install_path/$package_name/bin/*
|
223
|
+
|
224
|
+
info "\tInstalling rubygems dedicated to $package_name..."
|
225
|
+
gem_package_name="rubygems-1.3.5"
|
226
|
+
gem_url="http://rubyforge.org/frs/download.php/60718/$gem_package_name.tgz"
|
227
|
+
if [ -d $gem_package_name ] ; then
|
228
|
+
cd $gem_package_name
|
229
|
+
else
|
230
|
+
if [ ! -f $gem_package_name.tgz ] ; then curl -O -L -s $gem_url ; fi
|
231
|
+
tar zxf $gem_package_name.tgz && cd $gem_package_name
|
232
|
+
fi
|
233
|
+
# Well this is fun... fix nil error on require_paths:
|
234
|
+
sed -i '' "s/require_paths\.join/require_paths.to_a.join/" $source_path/$package_name/$gem_package_name/lib/rubygems/gem_path_searcher.rb
|
235
|
+
$install_path/$package_name/bin/ruby ./setup.rb > $install_path/$package_name/rubygems.install.log 2> $install_path/$package_name/rubygems.install.error.log
|
236
|
+
info "Installation of $package_name complete."
|
237
|
+
popd > /dev/null
|
238
|
+
|
239
|
+
for gem_name in rake ; do
|
240
|
+
info "Installing $gem_name"
|
241
|
+
$install_path/$package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $install_path/$package_name/gems.install.log
|
242
|
+
done
|
194
243
|
;;
|
195
244
|
|
196
245
|
jruby)
|
197
246
|
version=${version-1.3.1} # 1.2.0, 1.3.1
|
198
247
|
unset patchlevel # No patchlevel for jRuby
|
199
|
-
|
200
|
-
|
201
|
-
url="http://dist.codehaus.org/$implementation/$version/$
|
202
|
-
|
203
|
-
|
204
|
-
|
248
|
+
zipfile="$implementation-bin-$version"
|
249
|
+
package_name="$implementation-$version"
|
250
|
+
url="http://dist.codehaus.org/$implementation/$version/$zipfile.zip"
|
251
|
+
|
252
|
+
info "Installing jRuby to: $install_path/$package_name"
|
253
|
+
mkdir -p $install_path/$package_name
|
254
|
+
pushd $source_path > /dev/null
|
255
|
+
if [ -d $zipfile ] ; then
|
256
|
+
cd $zipfile
|
205
257
|
else
|
206
|
-
if [ ! -f "$
|
207
|
-
|
258
|
+
if [ ! -f "$zipfile.zip" ] ; then
|
259
|
+
info "\tDownloading $zipfile, this may take a while depending on your connection..."
|
260
|
+
curl -O -L -s $url
|
261
|
+
fi
|
262
|
+
info "\tExtracting $zipfile..."
|
263
|
+
jar xf $zipfile.zip
|
208
264
|
fi
|
209
|
-
|
265
|
+
|
266
|
+
info "\tInstalling $package_name..."
|
267
|
+
mkdir -p $install_path/$package_name/bin/
|
268
|
+
rsync -ag $source_path/$package_name/ $install_path/$package_name/
|
269
|
+
cd $source_path/$package_name/tool/nailgun && make > $install_path/$package_name/install.nailgun.log 2> $install_path/$package_name/install.error.nailgun.log
|
270
|
+
popd > /dev/null
|
271
|
+
chmod +x $install_path/$package_name/bin/*
|
210
272
|
for binary in jruby jgem jirb ; do
|
211
|
-
ln -sf $
|
273
|
+
ln -sf $install_path/$package_name/bin/$binary $install_path/$package_name/bin/${binary#j}
|
274
|
+
done
|
275
|
+
for gem_name in rake jruby-openssl ; do
|
276
|
+
info "Installing $gem_name"
|
277
|
+
$install_path/$package_name/bin/jgem install $gem_name --no-rdoc --no-ri -q >> $install_path/$package_name/gems.install.log
|
212
278
|
done
|
213
|
-
rsync -ag $source_path/$package_dir/ $install_path/$package_dir/
|
214
|
-
cd $source_path/$package_dir/tool/nailgun && make
|
215
|
-
popd
|
216
|
-
chmod +x $install_path/$package_dir/bin/*
|
217
|
-
rvm-gi jruby-openssl
|
218
279
|
;;
|
219
280
|
|
220
281
|
ruby)
|
@@ -228,8 +289,6 @@ function rvm-install-ruby {
|
|
228
289
|
|
229
290
|
esac
|
230
291
|
|
231
|
-
rvm-gi rake
|
232
|
-
|
233
292
|
}
|
234
293
|
|
235
294
|
function rvm-use {
|
@@ -298,14 +357,14 @@ function rvm-use {
|
|
298
357
|
esac
|
299
358
|
|
300
359
|
if [ ! "$implementation" = "default" ] ; then
|
301
|
-
RUBY_VERSION="$($MY_RUBY_HOME/bin/ruby -v | sed 's/^\(.*\) (.*$/\1/')"
|
302
|
-
export GEM_HOME MY_RUBY_HOME RUBY_VERSION
|
303
|
-
|
304
360
|
if [ ! -d $MY_RUBY_HOME ] ; then
|
305
|
-
warn "$implementation $version is not installed
|
361
|
+
warn "$implementation $version is not installed."
|
306
362
|
rvm-install-ruby $implementation $version $level
|
307
363
|
fi
|
308
364
|
|
365
|
+
RUBY_VERSION="$($MY_RUBY_HOME/bin/ruby -v | sed 's/^\(.*\) (.*$/\1/')"
|
366
|
+
export GEM_HOME MY_RUBY_HOME RUBY_VERSION
|
367
|
+
|
309
368
|
# Setup ~/.rvm/current
|
310
369
|
echo "PATH=$MY_RUBY_HOME/bin:$GEM_HOME/bin:\$PATH ; export PATH" > ~/.rvm/current
|
311
370
|
for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do
|
@@ -323,27 +382,27 @@ function rvm-use {
|
|
323
382
|
elif [ ! -z "$ZSH_VERSION" ] ; then
|
324
383
|
exec zsh -l
|
325
384
|
else
|
326
|
-
fail "Your shell
|
385
|
+
fail "Your shell is not supported bash and zsh are currently supported."
|
327
386
|
fi
|
328
387
|
}
|
329
388
|
|
330
389
|
function rvm-gem-dir {
|
331
390
|
|
332
|
-
case "$implementation" in
|
391
|
+
case "${1-implementation}" in
|
333
392
|
jruby) GEM_HOME="$HOME/.gem/jruby/1.8" ;;
|
334
393
|
ree) GEM_HOME="$HOME/.gem/ruby-enterprise/1.8" ;;
|
335
394
|
ruby)
|
336
|
-
if [ "$version" = "1.8" -o "$version" = "1.8.6" ] ; then
|
395
|
+
if [ "${2-version}" = "1.8" -o "${2-version}" = "1.8.6" ] ; then
|
337
396
|
GEM_HOME="$HOME/.gem/ruby/1.8"
|
338
397
|
|
339
|
-
elif [ "$version" = "1.9.2" ] ; then
|
398
|
+
elif [ "${2-version}" = "1.9.2" ] ; then
|
340
399
|
GEM_HOME="$HOME/.gem/ruby/1.9.2"
|
341
400
|
|
342
|
-
elif [ "$version" = "1.9" -o "$version" = "1.9.1" ] ; then
|
401
|
+
elif [ "${2-version}" = "1.9" -o "${2-version}" = "1.9.1" ] ; then
|
343
402
|
GEM_HOME="$HOME/.gem/ruby/1.9.1"
|
344
403
|
|
345
404
|
else
|
346
|
-
fail "Unknown
|
405
|
+
fail "Unknown Version: ${2-version}"
|
347
406
|
fi
|
348
407
|
;;
|
349
408
|
*)
|
@@ -430,7 +489,7 @@ function rvm-gem-dup {
|
|
430
489
|
|
431
490
|
}
|
432
491
|
|
433
|
-
function rvm-version {
|
492
|
+
function rvm-version { echo "rvm $rvm_version ($rvm_updated) [$rvm_website]" ; }
|
434
493
|
|
435
494
|
function rvm {
|
436
495
|
|
@@ -447,7 +506,14 @@ function rvm {
|
|
447
506
|
implementation="$token" ;;
|
448
507
|
1.8|1.8.6|1.8.7|1.9|1.9.1|1.9.2|1.2.0|1.3.1)
|
449
508
|
version="$token" ;;
|
450
|
-
-v|--version)
|
509
|
+
-v|--version)
|
510
|
+
if [ -z "$1" ] ; then
|
511
|
+
action="version"
|
512
|
+
else
|
513
|
+
version="$1"
|
514
|
+
fi
|
515
|
+
shift
|
516
|
+
;;
|
451
517
|
-l|--level) patchlevel="$1" ; shift ;;
|
452
518
|
-p|--prefix) install_path="$1" ; shift ;;
|
453
519
|
-s|--source) source_path="$1" ; shift ;; # Undocumented / untested "feature"
|