wayneeseguin-rvm 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/bash/rvm +139 -69
  2. metadata +2 -2
data/bash/rvm CHANGED
@@ -3,8 +3,8 @@
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.5"
7
- rvm_updated="2009.08.23"
6
+ rvm_version="0.0.7"
7
+ rvm_updated="2009.08.25"
8
8
 
9
9
  #
10
10
  # License: See LICENSE
@@ -29,23 +29,24 @@ function rvm-usage {
29
29
 
30
30
  Action:
31
31
 
32
- * usage - Show this usage information
33
- use - Switch to using a specific ruby versio (new login shell)
34
- info - Show information for current ruby
35
- gemdir - Switch to gem directory for installation (new login shell)
36
- srcdir - Switch to src directory for the current ruby installation
37
- gemdup - Clone source implementation version gems to currently used version
38
- (expiramental)
39
- install - Install a ruby version, default is from source
40
- debug - Emit environment and configuration information for debugging
32
+ * usage - Show this usage information
33
+ use - Switch to using a specific ruby versio (new login shell)
34
+ info - Show information for current ruby
35
+ gemdir - Switch to gem directory for installation (new login shell)
36
+ srcdir - Switch to src directory for the current ruby installation
37
+ gemdup - Clone source implementation version gems to currently used version
38
+ (expiramental) Example: rvm gemdup ~/.gem/ruby/1.8/
39
+ install - Install a ruby version, default is from source
40
+ uninstall - Uninstall a ruby version
41
+ debug - Emit environment and configuration information for debugging
41
42
 
42
43
  Implementation:
43
44
 
44
- * ruby - MRI/YARV Ruby (The Standard), defaults to 1.8.6
45
- jruby - jRuby
46
- ree - Ruby Enterprise Edition
47
- default - Resets to the default system ruby
48
- all - Used with install, installs all latest known versions
45
+ * ruby - MRI/YARV Ruby (The Standard), defaults to 1.8.6
46
+ jruby - jRuby
47
+ ree - Ruby Enterprise Edition
48
+ default - Resets to the default system ruby
49
+ all - Used with install, installs all latest known versions
49
50
 
50
51
  Options:
51
52
 
@@ -68,13 +69,14 @@ function rvm-usage {
68
69
 
69
70
  Examples:
70
71
 
71
- $ gem install rvm # Install the rvm gem
72
- $ rvm-install # Install rvm, adds source hooks for bash & zsh
73
- $ rvm install jruby # Install jRuby (default version is 1.3.1)
74
- $ rvm use ruby -v 1.9.1 # Use Ruby 1.9.1, installs if necessary
75
- $ rvm use 1.9 # Equivalent to above, due to defaults
76
- $ rvm use 1.8 # Use Ruby 1.8.6, installs if necessary
77
- $ rvm use default # Use the system default (as if no rvm)
72
+ $ gem install rvm # Install the rvm gem
73
+ $ rvm-install # Install rvm, adds hooks for bash & zsh
74
+ $ rvm install jruby # Install jRuby (default version is 1.3.1)
75
+ $ rvm use ruby -v 1.9.1 # Use Ruby 1.9.1, installs if necessary
76
+ $ rvm use 1.9 # Equivalent to above, due to defaults
77
+ $ rvm use 1.8 # Use Ruby 1.8.6, installs if necessary
78
+ $ rvm use default # Use the system default (as if no rvm)
79
+ $ rvm gemdup ~/.gem/ruby/1.8/ # Install gems from ~/.gem/ruby/1.8/
78
80
 
79
81
  TODO: (in order)
80
82
 
@@ -100,12 +102,12 @@ Usage
100
102
  }
101
103
 
102
104
  # Logging functions based on level
103
- function log { echo -e "\n $* \e[0m\n" ; }
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 ; }
105
+ function log { echo -e "\n $* \e[0m" ; }
106
+ function debug { log "\e[4;34m <d> \e[0m$*" ; }
107
+ function info { log "\e[0;32m <i> \e[0m$*" ; }
108
+ function warn { log "\e[0;33m <w> \e[0m$*" ; }
109
+ function error { log "\e[0;31m <e> \e[0m$*" ; }
110
+ function fail { log "\e[0;31m <e> \e[0m$*" ; return 1 ; }
109
111
 
110
112
  function rvm-gi { gem install -q --no-rdoc --no-ri $* ; }
111
113
 
@@ -143,20 +145,37 @@ function rvm-install-source {
143
145
  *) fail "Ruby version '$version' is unknown."
144
146
  esac
145
147
 
148
+ set -x
146
149
  package_name="ruby-$major.$minor-p$level"
147
150
  url="ftp://ftp.ruby-lang.org/pub/ruby/$major/$package_name.tar.gz"
148
151
 
149
- pushd $source_path
152
+ info "Installing Ruby from source to: $install_path/$package_name"
153
+ mkdir -p $install_path/$package_name
154
+
155
+ pushd $source_path > /dev/null
150
156
  if [ -d $package_name ] ; then
151
157
  cd $package_name
152
158
  else
153
- if [ ! -f "$package_name.tar.gz" ] ; then curl -O -L -s $url ; fi
154
- tar xzf $package_name.tar.gz && cd $package_name/
159
+ if [ ! -f "$package_name.tar.gz" ] ; then
160
+ info "\tDownloading $package_name, this may take a while depending on your connection..."
161
+ curl -O -L -s $url
162
+ fi
163
+ info "\tExtracting $package_name..."
164
+ tar xzf $package_name.tar.gz && cd $package_name
155
165
  fi
156
- ./configure --prefix=$install_path/$package_name ${configure-'--enable-shared'} && make && make install
166
+
167
+ info "\tConfiguring $package_name using ${configure-'--enable-shared'}, this may take a while depending on your cpu(s)..."
168
+ ./configure --prefix=$install_path/$package_name ${configure-'--enable-shared'} > $install_path/$package_name/configure.log 2> $install_path/$package_name/configure.error.log
169
+
170
+ info "\tCompiling $package_name, this may take a while, depending on your cpu(s)..."
171
+ make > $install_path/$package_name/make.log 2> $install_path/$package_name/make.error.log
172
+
173
+ info "\tInstalling $package_name"
174
+ make install > $install_path/$package_name/install.log 2> $install_path/$package_name/install.error.log
157
175
  chmod +x $install_path/$package_name/bin/*
158
176
 
159
177
  # Now install rubygems for this ruby version.
178
+ info "\tInstalling rubygems dedicated to $package_name..."
160
179
  gem_package_name="rubygems-1.3.5"
161
180
  gem_url="http://rubyforge.org/frs/download.php/60718/$gem_package_name.tgz"
162
181
  if [ -d $gem_package_name ] ; then
@@ -167,9 +186,16 @@ function rvm-install-source {
167
186
  fi
168
187
  # Well this is fun... fix nil error on require_paths:
169
188
  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
189
+ $install_path/$package_name/bin/ruby ./setup.rb > $install_path/$package_name/rubygems.install.log 2> $install_path/$package_name/rubygems.install.error.log
190
+ popd > /dev/null
191
+ info "Installation of $package_name complete."
192
+
193
+ for gem_name in rake ; do
194
+ info "Installing $gem_name"
195
+ $install_path/$package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $install_path/$package_name/gems.install.log
196
+ done
172
197
 
198
+ set +x
173
199
  }
174
200
 
175
201
  function rvm-install-ruby {
@@ -181,40 +207,79 @@ function rvm-install-ruby {
181
207
  patchlevel=${patchlevel-20090610}
182
208
  package_name="ruby-enterprise-$version-$patchlevel"
183
209
  url="http://rubyforge.org/frs/download.php/58677/$package_name.tar.gz"
184
- pushd $source_path
210
+ info "Installing Ruby Enterprise Edition from source to: $install_path/$package_name"
211
+ pushd $source_path > /dev/null
185
212
  if [ -d $package_name ] ; then
186
213
  cd $package_name
187
214
  else
188
- if [ ! -f "$package_name.tar.gz" ] ; then curl -O -L -s $url ; fi
189
- tar xzf $package_name.tar.gz && cd $package_name/
215
+ if [ ! -f "$package_name.tar.gz" ] ; then
216
+ info "\tDownloading $package_name, this may take a while depending on your connection..."
217
+ curl -O -L -s $url
218
+ fi
219
+ info "\tExtracting $package_name..."
220
+ tar xzf $package_name.tar.gz && cd $package_name
190
221
  fi
191
- cd ruby-enterprise-$version-$patchlevel && ./installer -a $install_path/ruby-enterprise-$version-$patchlevel --dont-install-useful-gems
192
- popd
222
+
223
+ info "\tInstalling $package_name, this may take a while, depending on your cpu(s)..."
224
+ mkdir -p $install_path/$package_name
225
+ ./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
226
  chmod +x $install_path/$package_name/bin/*
227
+
228
+ info "\tInstalling rubygems dedicated to $package_name..."
229
+ gem_package_name="rubygems-1.3.5"
230
+ gem_url="http://rubyforge.org/frs/download.php/60718/$gem_package_name.tgz"
231
+ if [ -d $gem_package_name ] ; then
232
+ cd $gem_package_name
233
+ else
234
+ if [ ! -f $gem_package_name.tgz ] ; then curl -O -L -s $gem_url ; fi
235
+ tar zxf $gem_package_name.tgz && cd $gem_package_name
236
+ fi
237
+ # Well this is fun... fix nil error on require_paths:
238
+ sed -i '' "s/require_paths\.join/require_paths.to_a.join/" $source_path/$package_name/$gem_package_name/lib/rubygems/gem_path_searcher.rb
239
+ $install_path/$package_name/bin/ruby ./setup.rb > $install_path/$package_name/rubygems.install.log 2> $install_path/$package_name/rubygems.install.error.log
240
+ info "Installation of $package_name complete."
241
+ popd > /dev/null
242
+
243
+ for gem_name in rake ; do
244
+ info "Installing $gem_name"
245
+ $install_path/$package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $install_path/$package_name/gems.install.log
246
+ done
194
247
  ;;
195
248
 
196
249
  jruby)
197
250
  version=${version-1.3.1} # 1.2.0, 1.3.1
198
251
  unset patchlevel # No patchlevel for jRuby
199
- package_name="$implementation-bin-$version"
200
- package_dir="$implementation-$version"
201
- url="http://dist.codehaus.org/$implementation/$version/$package_name.zip"
202
- pushd $source_path
203
- if [ -d $package_name ] ; then
204
- cd $package_name
252
+ zipfile="$implementation-bin-$version"
253
+ package_name="$implementation-$version"
254
+ url="http://dist.codehaus.org/$implementation/$version/$zipfile.zip"
255
+
256
+ info "Installing jRuby to: $install_path/$package_name"
257
+ mkdir -p $install_path/$package_name
258
+ pushd $source_path > /dev/null
259
+ if [ -d $zipfile ] ; then
260
+ cd $zipfile
205
261
  else
206
- if [ ! -f "$package_name.zip" ] ; then curl -O -L -s $url ; fi
207
- jar xf $package_name.zip && cd $package_name/
262
+ if [ ! -f "$zipfile.zip" ] ; then
263
+ info "\tDownloading $zipfile, this may take a while depending on your connection..."
264
+ curl -O -L -s $url
265
+ fi
266
+ info "\tExtracting $zipfile..."
267
+ jar xf $zipfile.zip
208
268
  fi
209
- mkdir -p $install_path/$package_dir/bin/
269
+
270
+ info "\tInstalling $package_name..."
271
+ mkdir -p $install_path/$package_name/bin/
272
+ rsync -ag $source_path/$package_name/ $install_path/$package_name/
273
+ cd $source_path/$package_name/tool/nailgun && make > $install_path/$package_name/install.nailgun.log 2> $install_path/$package_name/install.error.nailgun.log
274
+ popd > /dev/null
275
+ chmod +x $install_path/$package_name/bin/*
210
276
  for binary in jruby jgem jirb ; do
211
- ln -sf $source_path/$package_dir/bin/$binary $source_path/$package_dir/bin/${binary#j}
277
+ ln -sf $install_path/$package_name/bin/$binary $install_path/$package_name/bin/${binary#j}
278
+ done
279
+ for gem_name in rake jruby-openssl ; do
280
+ info "Installing $gem_name"
281
+ $install_path/$package_name/bin/jgem install $gem_name --no-rdoc --no-ri -q >> $install_path/$package_name/gems.install.log
212
282
  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
283
  ;;
219
284
 
220
285
  ruby)
@@ -228,8 +293,6 @@ function rvm-install-ruby {
228
293
 
229
294
  esac
230
295
 
231
- rvm-gi rake
232
-
233
296
  }
234
297
 
235
298
  function rvm-use {
@@ -298,14 +361,14 @@ function rvm-use {
298
361
  esac
299
362
 
300
363
  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
364
  if [ ! -d $MY_RUBY_HOME ] ; then
305
- warn "$implementation $version is not installed, installing."
365
+ warn "$implementation $version is not installed."
306
366
  rvm-install-ruby $implementation $version $level
307
367
  fi
308
368
 
369
+ RUBY_VERSION="$($MY_RUBY_HOME/bin/ruby -v | sed 's/^\(.*\) (.*$/\1/')"
370
+ export GEM_HOME MY_RUBY_HOME RUBY_VERSION
371
+
309
372
  # Setup ~/.rvm/current
310
373
  echo "PATH=$MY_RUBY_HOME/bin:$GEM_HOME/bin:\$PATH ; export PATH" > ~/.rvm/current
311
374
  for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do
@@ -323,27 +386,27 @@ function rvm-use {
323
386
  elif [ ! -z "$ZSH_VERSION" ] ; then
324
387
  exec zsh -l
325
388
  else
326
- fail "Your shell '$0' is not supported."
389
+ fail "Your shell is not supported bash and zsh are currently supported."
327
390
  fi
328
391
  }
329
392
 
330
393
  function rvm-gem-dir {
331
394
 
332
- case "$implementation" in
395
+ case "${1-implementation}" in
333
396
  jruby) GEM_HOME="$HOME/.gem/jruby/1.8" ;;
334
397
  ree) GEM_HOME="$HOME/.gem/ruby-enterprise/1.8" ;;
335
398
  ruby)
336
- if [ "$version" = "1.8" -o "$version" = "1.8.6" ] ; then
399
+ if [ "${2-version}" = "1.8" -o "${2-version}" = "1.8.6" ] ; then
337
400
  GEM_HOME="$HOME/.gem/ruby/1.8"
338
401
 
339
- elif [ "$version" = "1.9.2" ] ; then
402
+ elif [ "${2-version}" = "1.9.2" ] ; then
340
403
  GEM_HOME="$HOME/.gem/ruby/1.9.2"
341
404
 
342
- elif [ "$version" = "1.9" -o "$version" = "1.9.1" ] ; then
405
+ elif [ "${2-version}" = "1.9" -o "${2-version}" = "1.9.1" ] ; then
343
406
  GEM_HOME="$HOME/.gem/ruby/1.9.1"
344
407
 
345
408
  else
346
- fail "Unknown ruby version: $version"
409
+ fail "Unknown Version: ${2-version}"
347
410
  fi
348
411
  ;;
349
412
  *)
@@ -430,7 +493,7 @@ function rvm-gem-dup {
430
493
 
431
494
  }
432
495
 
433
- function rvm-version { info "rvm $rvm_version" ; }
496
+ function rvm-version { echo "rvm $rvm_version ($rvm_updated) [$rvm_website]" ; }
434
497
 
435
498
  function rvm {
436
499
 
@@ -447,7 +510,14 @@ function rvm {
447
510
  implementation="$token" ;;
448
511
  1.8|1.8.6|1.8.7|1.9|1.9.1|1.9.2|1.2.0|1.3.1)
449
512
  version="$token" ;;
450
- -v|--version) version="$1" ; shift ;;
513
+ -v|--version)
514
+ if [ -z "$1" ] ; then
515
+ action="version"
516
+ else
517
+ version="$1"
518
+ fi
519
+ shift
520
+ ;;
451
521
  -l|--level) patchlevel="$1" ; shift ;;
452
522
  -p|--prefix) install_path="$1" ; shift ;;
453
523
  -s|--source) source_path="$1" ; shift ;; # Undocumented / untested "feature"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wayneeseguin-rvm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wayne E. Seguin
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-24 00:00:00 -07:00
12
+ date: 2009-08-25 00:00:00 -07:00
13
13
  default_executable: rvm-install
14
14
  dependencies: []
15
15