wayneeseguin-rvm 0.0.22 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
data/bash/rvm CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/bin/bash
2
2
 
3
- rvm_author="Wayne E. Seguin"
4
- rvm_author_email="wayneeseguin@gmail.com"
5
- rvm_website="http://rvm.beginrescueend.com/"
6
- rvm_version="0.0.22"
7
- rvm_updated="2009.08.25"
3
+ rvm_meta_author="Wayne E. Seguin"
4
+ rvm_meta_author_email="wayneeseguin@gmail.com"
5
+ rvm_meta_website="http://rvm.beginrescueend.com/"
6
+ rvm_meta_version="0.0.24"
7
+ rvm_meta_updated="2009.08.25"
8
8
 
9
9
  #
10
10
  # License: See LICENSE
@@ -40,12 +40,13 @@ function rvm-usage {
40
40
  list - Show currently installed versions
41
41
  gemdir - Switch to gem directory for installation (new login shell)
42
42
  srcdir - Switch to src directory for the current ruby installation
43
- gemdup - Clone source version gems to current version
43
+ gemdup - Clone source version gems to current version
44
44
  (highly expiramental) Example: rvm gemdup ~/.gem/ruby/1.8/
45
45
  install - Install a ruby version, default is from source
46
46
  uninstall - Uninstall a ruby version
47
47
  reset - Remove default and current settings, exit the shell.
48
48
  (If you experience odd behavior try this first)
49
+ reload - Reload rvm source itself (useful after changing rvm source)
49
50
  debug - Emit environment & configuration information for *current* ruby
50
51
 
51
52
  Implementation:
@@ -55,14 +56,16 @@ function rvm-usage {
55
56
  ree - Ruby Enterprise Edition
56
57
  default - Resets to the default system ruby
57
58
  all - Used with install, installs all latest known versions
58
-
59
- Options:
59
+
60
+ Options:
60
61
 
61
62
  -v|--version - Ruby Package Version, defaults to 'latest'
62
63
  -l|--level - Patch level for the specified Ruby version
63
64
  -p|--prefix - Package and source directory prefix, with trailing slash!
64
65
  Default is a users home directory and /usr/local/ for root
65
66
  -c|--configure - Options for source compile (default: --enable-shared)
67
+ -a|--archives - Directory to place downladed files into (~/.rvm/archives/)
68
+ -n|--nice - Niceness level (default: 0)
66
69
  -d|--debug - Toggle debug mode on for extra messages (NYI)
67
70
 
68
71
  Notes:
@@ -91,7 +94,7 @@ function rvm-usage {
91
94
 
92
95
  TODO: (in order)
93
96
 
94
- * rvm gemdup
97
+ * rvm gemdup
95
98
  * root support
96
99
  * Settings file, user overridable
97
100
  * Show current in rvm list, if applicable
@@ -123,8 +126,8 @@ ruby:
123
126
  full_version: "$(ruby -v)"
124
127
 
125
128
  homes:
126
- gem: "${GEM_HOME-not set}"
127
- ruby: "${MY_RUBY_HOME-not set}"
129
+ gem: "${GEM_HOME:-not set}"
130
+ ruby: "${MY_RUBY_HOME:-not set}"
128
131
 
129
132
  binaries:
130
133
  ruby: "$(which ruby)"
@@ -135,169 +138,184 @@ Info
135
138
 
136
139
  }
137
140
 
141
+ function rvm-curl {
142
+ pushd $rvm_archives_path > /dev/null
143
+ eval $rvm_curl "$1"
144
+ popd > /dev/null
145
+ }
146
+
138
147
  function rvm-install-source {
139
148
 
140
- version="${1:-1.8.6}"
141
- case "$version" in
142
- 1.9|1.9.1) major="1.9" ; minor="1" ; level="${2-243}" ;;
143
- 1.9.2) major="1.9" ; minor="2" ; level="${2-review1}" ;;
144
- 1.8|1.8.6) major="1.8" ; minor="6" ; level="${2-369}" ;;
145
- 1.8.7) major="1.8" ; minor="7" ; level="${2-174}" ;;
146
- *) rvm-log-fail "Ruby version '$version' is unknown."
149
+ rvm_version="${1:-1.8.6}"
150
+ case "$rvm_version" in
151
+ 1.9|1.9.1) rvm_major="1.9" ; rvm_minor="1" ; rvm_patch_level="${2:-243}" ;;
152
+ 1.9.2) rvm_major="1.9" ; rvm_minor="2" ; rvm_patch_level="${2:-review1}" ;;
153
+ 1.8|1.8.6) rvm_major="1.8" ; rvm_minor="6" ; rvm_patch_level="${2:-369}" ;;
154
+ 1.8.7) rvm_major="1.8" ; rvm_minor="7" ; rvm_patch_level="${2:-174}" ;;
155
+ *) rvm-log-fail "Ruby version '$rvm_version' is unknown."
147
156
  esac
148
157
 
149
- package_name="ruby-$major.$minor-p$level"
150
- url="ftp://ftp.ruby-lang.org/pub/ruby/$major/$package_name.tar.gz"
151
-
152
- rvm-log-info "Installing Ruby from source to: $install_path/$package_name"
153
- mkdir -p $install_path/$package_name
154
-
155
- pushd $source_path > /dev/null
156
- if [ -d $package_name ] ; then
157
- cd $package_name
158
+ rvm_package_name="ruby-$rvm_major.$rvm_minor-p$rvm_patch_level"
159
+ rvm_url="ftp://ftp.ruby-lang.org/pub/ruby/$rvm_major/$rvm_package_name.tar.gz"
160
+
161
+ rvm-log-info "Installing Ruby from source to: $rvm_install_path/$rvm_package_name"
162
+ mkdir -p $rvm_log_path/$rvm_package_name
163
+
164
+ pushd $rvm_source_path > /dev/null
165
+ if [ -d $rvm_source_path/$rvm_package_name ] ; then
166
+ cd $rvm_source_path/$rvm_package_name
158
167
  else
159
- if [ ! -f "$package_name.tar.gz" ] ; then
160
- rvm-log-info "\tDownloading $package_name, this may take a while depending on your connection..."
161
- eval $curl $url
168
+ if [ ! -f "$rvm_archives_path/$rvm_package_name.tar.gz" ] ; then
169
+ rvm-log-info "\tDownloading $rvm_package_name, this may take a while depending on your connection..."
170
+ rvm-curl $rvm_url
162
171
  fi
163
- rvm-log-info "\tExtracting $package_name..."
164
- tar xzf $package_name.tar.gz && cd $package_name
172
+ rvm-log-info "\tExtracting $rvm_package_name..."
173
+ mkdir -p $rvm_source_path/$rvm_package_name
174
+ nice -n $niceness tar xzf $rvm_archives_path/$rvm_package_name.tar.gz -C $rvm_source_path
165
175
  fi
166
176
 
167
- rvm-log-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/log/$package_name/configure.log 2> $install_path/log/$package_name/configure.error.log
177
+ cd $rvm_source_path/$rvm_package_name
178
+ rvm-log-info "\tConfiguring $rvm_package_name using ${configure:-"--enable-shared"}, this may take a while depending on your cpu(s)..."
179
+ nice -n $niceness ./configure --prefix=$rvm_install_path/$rvm_package_name ${configure:-"--enable-shared"} > $rvm_log_path/$rvm_package_name/configure.log 2> $rvm_log_path/$rvm_package_name/configure.error.log
169
180
 
170
- rvm-log-info "\tCompiling $package_name, this may take a while, depending on your cpu(s)..."
171
- make > $install_path/log/$package_name/make.log 2> $install_path/log/$package_name/make.error.log
181
+ rvm-log-info "\tCompiling $rvm_package_name, this may take a while, depending on your cpu(s)..."
182
+ nice -n $niceness make > $rvm_log_path/$rvm_package_name/make.log 2> $rvm_log_path/$rvm_package_name/make.error.log
172
183
 
173
- rvm-log-info "\tInstalling $package_name"
174
- make install > $install_path/log/$package_name/install.log 2> $install_path/log/$package_name/install.error.log
175
- chmod +x $install_path/$package_name/bin/*
184
+ rvm-log-info "\tInstalling $rvm_package_name"
185
+ nice -n $niceness make install > $rvm_log_path/$rvm_package_name/install.log 2> $rvm_log_path/$rvm_package_name/install.error.log
186
+ chmod +x $rvm_install_path/$rvm_package_name/bin/*
176
187
 
177
- # Create the ~/.rvm/bin/$package_name
178
- ln -fs $install_path/$package_name/bin/ruby $install_path/bin/$package_name
188
+ ln -fs $rvm_install_path/$rvm_package_name/bin/ruby $rvm_install_path/bin/$rvm_package_name
179
189
 
180
- # Now install rubygems for this ruby version.
181
- rvm-log-info "\tInstalling rubygems dedicated to $package_name..."
182
- gem_package_name="rubygems-1.3.5"
183
- gem_url="http://rubyforge.org/frs/download.php/60718/$gem_package_name.tgz"
184
- if [ -d $gem_package_name ] ; then
185
- cd $gem_package_name
190
+ rvm-log-info "\tInstalling rubygems dedicated to $rvm_package_name..."
191
+ rvm_gem_package_name="rubygems-1.3.5"
192
+ rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
193
+ if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
194
+ cd $rvm_source_path/$rvm_gem_package_name
186
195
  else
187
- if [ ! -f $gem_package_name.tgz ] ; then eval $curl $gem_url ; fi
188
- tar zxf $gem_package_name.tgz && cd $gem_package_name
196
+ if [ ! -f "$rvm_archives_path/$rvm_gem_package_name.tgz" ] ; then rvm-curl $rvm_gem_url ; fi
197
+ mkdir -p $rvm_source_path/$rvm_gem_package_name
198
+ nice -n $niceness tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
189
199
  fi
190
200
  # Well this is fun... fix nil error on require_paths:
191
- sed -i '' "s/require_paths\.join/require_paths.to_a.join/" $source_path/$package_name/$gem_package_name/lib/rubygems/gem_path_searcher.rb
192
- $install_path/$package_name/bin/ruby ./setup.rb > $install_path/log/$package_name/rubygems.install.log 2> $install_path/log/$package_name/rubygems.install.error.log
201
+ sed -i.orig "s/require_paths\.join/require_paths.to_a.join/" $rvm_source_path/$rvm_gem_package_name/lib/rubygems/gem_path_searcher.rb
202
+
203
+ nice -n $niceness $rvm_install_path/$rvm_package_name/bin/ruby $rvm_source_path/$rvm_gem_package_name/setup.rb > $rvm_log_path/$rvm_package_name/rubygems.install.log 2> $rvm_log_path/$rvm_package_name/rubygems.install.error.log
193
204
  popd > /dev/null
194
- rvm-log-info "Installation of $package_name complete."
205
+ rvm-log-info "Installation of $rvm_package_name complete."
195
206
 
196
207
  for gem_name in rake ; do
197
208
  rvm-log-info "Installing $gem_name"
198
- $install_path/$package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $install_path/log/$package_name/gems.install.log 2> $install_path/log/$package_name/gems.error.log
209
+ nice -n $niceness $rvm_install_path/$rvm_package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $rvm_log_path/$rvm_package_name/gems.install.log 2> $rvm_log_path/$rvm_package_name/gems.error.log
199
210
  done
200
211
  }
201
212
 
202
213
  function rvm-install-ruby {
203
214
 
204
- ruby_options=$RUBYOPT ; unset RUBYOPT
215
+ if [ -z "$RUBYOPT" ] ; then
216
+ ruby_options=$RUBYOPT ; unset RUBYOPT
217
+ fi
205
218
 
206
- case "$implementation" in
219
+ case "$rvm_implementation" in
207
220
 
208
221
  ree)
209
- version=${version-1.8.6}
210
- patchlevel=${patchlevel-20090610}
211
- package_name="ruby-enterprise-$version-$patchlevel"
212
- url="http://rubyforge.org/frs/download.php/58677/$package_name.tar.gz"
213
- rvm-log-info "Installing Ruby Enterprise Edition from source to: $install_path/$package_name"
214
- pushd $source_path > /dev/null
215
- if [ -d $package_name ] ; then
216
- cd $package_name
222
+ rvm_version=${rvm_version:-1.8.6}
223
+ rvm_patchlevel=${rvm_patchlevel:-20090610}
224
+ rvm_package_name="ruby-enterprise-$rvm_version-$rvm_patchlevel"
225
+ rvm_url="http://rubyforge.org/frs/download.php/58677/$rvm_package_name.tar.gz"
226
+ rvm-log-info "Installing Ruby Enterprise Edition from source to: $rvm_install_path/$rvm_package_name"
227
+ pushd $rvm_source_path > /dev/null
228
+ if [ -d $rvm_source_path/$rvm_package_name ] ; then
229
+ cd $rvm_source_path/$rvm_package_name
217
230
  else
218
- if [ ! -f "$package_name.tar.gz" ] ; then
219
- rvm-log-info "\tDownloading $package_name, this may take a while depending on your connection..."
220
- eval $curl $url
231
+ if [ ! -f "$rvm_archives_path/$rvm_package_name.tar.gz" ] ; then
232
+ rvm-log-info "\tDownloading $rvm_package_name, this may take a while depending on your connection..."
233
+ rvm-curl $rvm_url
221
234
  fi
222
- rvm-log-info "\tExtracting $package_name..."
223
- tar xzf $package_name.tar.gz && cd $package_name
235
+ rvm-log-info "\tExtracting $rvm_package_name..."
236
+ mkdir -p $rvm_source_path/$rvm_package_name
237
+ nice -n $niceness tar xzf $rvm_archives_path/$rvm_package_name.tar.gz -C $rvm_source_path
224
238
  fi
225
239
 
226
- rvm-log-info "\tInstalling $package_name, this may take a while, depending on your cpu(s)..."
227
- mkdir -p $install_path/$package_name
228
- ./installer -a $install_path/ruby-enterprise-$version-$patchlevel --dont-install-useful-gems > $install_path/log/$package_name/install.log 2> $install_path/log/$package_name/install.error.log
229
- chmod +x $install_path/$package_name/bin/*
240
+ rvm-log-info "\tInstalling $rvm_package_name, this may take a while, depending on your cpu(s)..."
241
+ mkdir -p $rvm_log_path/$rvm_package_name
230
242
 
231
- ln -fs $install_path/$package_name/bin/ruby $install_path/bin/$package_name
243
+ cd $rvm_source_path/$rvm_package_name
244
+ nice -n $niceness ./installer -a $rvm_install_path/ruby-enterprise-$rvm_version-$rvm_patchlevel --dont-install-useful-gems > $rvm_log_path/$rvm_package_name/install.log 2> $rvm_log_path/$rvm_package_name/install.error.log
245
+ chmod +x $rvm_install_path/$rvm_package_name/bin/*
232
246
 
233
- rvm-log-info "\tInstalling rubygems dedicated to $package_name..."
234
- gem_package_name="rubygems-1.3.5"
235
- gem_url="http://rubyforge.org/frs/download.php/60718/$gem_package_name.tgz"
236
- if [ -d $gem_package_name ] ; then
237
- cd $gem_package_name
247
+ ln -fs $rvm_install_path/$rvm_package_name/bin/ruby $rvm_install_path/bin/$rvm_package_name
248
+
249
+ rvm-log-info "\tInstalling rubygems dedicated to $rvm_package_name..."
250
+ rvm_gem_package_name="rubygems-1.3.5"
251
+ rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
252
+ if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
253
+ cd $rvm_source_path/$rvm_gem_package_name
238
254
  else
239
- if [ ! -f $gem_package_name.tgz ] ; then eval $curl $gem_url ; fi
240
- tar zxf $gem_package_name.tgz && cd $gem_package_name
255
+ if [ ! -f "$rvm_archives_path/$rvm_gem_package_name.tgz" ] ; then rvm-curl $rvm_gem_url ; fi
256
+ mkdir -p $rvm_source_path/$rvm_gem_package_name
257
+ nice -n $niceness tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
241
258
  fi
242
259
  # Well this is fun... fix nil error on require_paths:
243
- sed -i '' "s/require_paths\.join/require_paths.to_a.join/" $source_path/$package_name/$gem_package_name/lib/rubygems/gem_path_searcher.rb
244
- $install_path/$package_name/bin/ruby ./setup.rb > $install_path/log/$package_name/rubygems.install.log 2> $install_path/log/$package_name/rubygems.install.error.log
245
- rvm-log-info "Installation of $package_name complete."
260
+ sed -i.orig "s/require_paths\.join/require_paths.to_a.join/" $rvm_source_path/$rvm_gem_package_name/lib/rubygems/gem_path_searcher.rb > $rvm_log_path/$rvm_package_name/rubygems.install.log 2> $rvm_log_path/$rvm_package_name/rubygems.install.error.log
261
+
262
+ nice -n $niceness $rvm_install_path/$rvm_package_name/bin/ruby $rvm_source_path/$rvm_gem_package_name/setup.rb > $rvm_log_path/$rvm_package_name/rubygems.install.log 2> $rvm_log_path/$rvm_package_name/rubygems.install.error.log
263
+ rvm-log-info "Installation of $rvm_package_name complete."
246
264
  popd > /dev/null
247
-
265
+
248
266
  for gem_name in rake ; do
249
267
  rvm-log-info "Installing $gem_name"
250
- $install_path/$package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $install_path/log/$package_name/gems.install.log 2> $install_path/log/$package_name/gems.error.log
268
+ nice -n $niceness $rvm_install_path/$rvm_package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $rvm_log_path/$rvm_package_name/gems.install.log 2> $rvm_log_path/$rvm_package_name/gems.error.log
251
269
  done
252
270
  ;;
253
271
 
254
272
  jruby)
255
- version=${version-1.3.1} # 1.2.0, 1.3.1
256
- unset patchlevel # No patchlevel for jRuby
257
- zipfile="$implementation-bin-$version"
258
- package_name="$implementation-$version"
259
- url="http://dist.codehaus.org/$implementation/$version/$zipfile.zip"
260
-
261
- rvm-log-info "Installing jRuby to: $install_path/$package_name"
262
- mkdir -p $install_path/$package_name
263
- pushd $source_path > /dev/null
264
- if [ -d $zipfile ] ; then
265
- cd $zipfile
273
+ rvm_version=${rvm_version:-1.3.1} # 1.2.0, 1.3.1
274
+ unset rvm_patchlevel # No patchlevel for jRuby
275
+ rvm_package_file="$rvm_implementation-bin-$rvm_version"
276
+ rvm_package_name="$rvm_implementation-$rvm_version"
277
+ rvm_url="http://dist.codehaus.org/$rvm_implementation/$rvm_version/$rvm_package_file.zip"
278
+
279
+ rvm-log-info "Installing jRuby to: $rvm_install_path/$rvm_package_name"
280
+ mkdir -p $rvm_log_path/$rvm_package_name
281
+ pushd $rvm_source_path > /dev/null
282
+ if [ -d $rvm_package_name ] ; then
283
+ cd $rvm_source_path/$rvm_package_name
266
284
  else
267
- if [ ! -f "$zipfile.zip" ] ; then
268
- rvm-log-info "\tDownloading $zipfile, this may take a while depending on your connection..."
269
- eval $curl $url
285
+ if [ ! -f "$rvm_archives_path/$rvm_package_file.zip" ] ; then
286
+ rvm-log-info "\tDownloading $rvm_package_file, this may take a while depending on your connection..."
287
+ rvm-curl $rvm_url
270
288
  fi
271
- rvm-log-info "\tExtracting $zipfile..."
272
- jar xf $zipfile.zip
289
+ rvm-log-info "\tExtracting $rvm_package_file..."
290
+ nice -n $niceness unzip -q $rvm_archives_path/$rvm_package_file.zip -d $rvm_source_path
273
291
  fi
274
292
 
275
- rvm-log-info "\tInstalling $package_name..."
276
- mkdir -p $install_path/$package_name/bin/
277
- rsync -ag $source_path/$package_name/ $install_path/$package_name/
278
- cd $source_path/$package_name/tool/nailgun && make > $install_path/log/$package_name/install.nailgun.log 2> $install_path/log/$package_name/install.error.nailgun.log
293
+ rvm-log-info "\tInstalling $rvm_package_name..."
294
+ mkdir -p $rvm_install_path/$rvm_package_name/bin/
295
+ rsync -ag $rvm_source_path/$rvm_package_name/ $rvm_install_path/$rvm_package_name/
296
+ cd $rvm_source_path/$rvm_package_name/tool/nailgun && make > $rvm_log_path/$rvm_package_name/install.nailgun.log 2> $rvm_log_path/$rvm_package_name/install.error.nailgun.log
279
297
  popd > /dev/null
280
- chmod +x $install_path/$package_name/bin/*
298
+ chmod +x $rvm_install_path/$rvm_package_name/bin/*
281
299
  for binary in jruby jgem jirb ; do
282
- ln -fs $install_path/$package_name/bin/$binary $install_path/$package_name/bin/${binary#j}
300
+ ln -fs $rvm_install_path/$rvm_package_name/bin/$binary $rvm_install_path/$rvm_package_name/bin/${binary#j}
283
301
  done
284
302
 
285
- ln -fs $install_path/$package_name/bin/ruby $install_path/bin/$package_name
303
+ ln -fs $rvm_install_path/$rvm_package_name/bin/ruby $rvm_install_path/bin/$rvm_package_name
286
304
 
287
305
  for gem_name in rake jruby-openssl ; do
288
306
  rvm-log-info "Installing $gem_name"
289
- $install_path/$package_name/bin/jgem install $gem_name --no-rdoc --no-ri -q >> $install_path/log/$package_name/gems.install.log 2> $install_path/log/$package_name/gems.error.log
307
+ nice -n $niceness $rvm_install_path/$rvm_package_name/bin/jgem install $gem_name --no-rdoc --no-ri -q >> $rvm_log_path/$rvm_package_name/gems.install.log 2> $rvm_log_path/$rvm_package_name/gems.error.log
290
308
  done
291
309
  ;;
292
310
 
293
311
  ruby)
294
- rvm-install-source ${version-1.8.6} ${patchlevel-$3}
312
+ rvm-install-source ${rvm_version:-1.8.6} ${rvm_patchlevel:-$3}
295
313
  ;;
296
314
 
297
315
  default)
298
316
  rvm-log-fail "please specify a ruby implementation to install."
299
317
  ;;
300
- *) rvm-log-fail "Ruby implementation '$implementation' is not known."
318
+ *) rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
301
319
 
302
320
  esac
303
321
 
@@ -309,150 +327,150 @@ function rvm-install-ruby {
309
327
 
310
328
  function rvm-uninstall {
311
329
 
312
- implementation="${1-$implementation}"
313
- case "$implementation" in
330
+ rvm_implementation="${1:-$rvm_implementation}"
331
+ case "$rvm_implementation" in
314
332
 
315
333
  jruby)
316
- version="${version-1.3.1}"
317
- if [ "$version" = "1.2.0" -o "$version" = "1.3.1" ] ; then
318
- package_name="jruby*-$version"
334
+ rvm_version="${rvm_version:-1.3.1}"
335
+ if [ "$rvm_version" = "1.2.0" -o "$rvm_version" = "1.3.1" ] ; then
336
+ rvm_package_name="jruby*-$rvm_version"
319
337
  else
320
- rvm-log-fail "Unknown jRuby version: $version"
338
+ rvm-log-fail "Unknown jRuby version: $rvm_version"
321
339
  fi
322
340
  ;;
323
341
 
324
342
  ree)
325
- version=${version-1.8.6}
326
- if [ "$version" = "1.8.6" ] ; then
327
- package_name="ruby-enterprise-$version-${3-20090610}"
343
+ rvm_version=${rvm_version:-1.8.6}
344
+ if [ "$rvm_version" = "1.8.6" ] ; then
345
+ rvm_package_name="ruby-enterprise-$rvm_version-${3:-20090610}"
328
346
  else
329
- rvm-log-fail "Unknown Ruby Enterprise Edition version: $version"
347
+ rvm-log-fail "Unknown Ruby Enterprise Edition version: $rvm_version"
330
348
  fi
331
349
  ;;
332
350
 
333
351
  ruby)
334
- if [ "$version" = "1.8.7" ] ; then
335
- package_name="ruby-1.8.7-p${patchlevel-174}"
352
+ if [ "$rvm_version" = "1.8.7" ] ; then
353
+ rvm_package_name="ruby-1.8.7-p${rvm_patchlevel:-174}"
336
354
 
337
- elif [ "$version" = "1.8.6" -o "$version" = "1.8" ] ; then
338
- package_name="ruby-1.8.6-p${patchlevel-369}"
355
+ elif [ "$rvm_version" = "1.8.6" -o "$rvm_version" = "1.8" ] ; then
356
+ rvm_package_name="ruby-1.8.6-p${rvm_patchlevel:-369}"
339
357
 
340
- elif [ "$version" = "1.9.2" ] ; then
341
- package_name="ruby-1.9.2-p${patchlevel-review1}"
358
+ elif [ "$rvm_version" = "1.9.2" ] ; then
359
+ rvm_package_name="ruby-1.9.2-p${rvm_patchlevel:-review1}"
342
360
 
343
- elif [ "$version" = "1.9.1" -o "$version" = "1.9" ] ; then
344
- package_name="ruby-1.9.1-p${patchlevel-243}"
361
+ elif [ "$rvm_version" = "1.9.1" -o "$rvm_version" = "1.9" ] ; then
362
+ rvm_package_name="ruby-1.9.1-p${rvm_patchlevel:-243}"
345
363
 
346
364
  else
347
- rvm-log-fail "Unknown ruby version: $version"
365
+ rvm-log-fail "Unknown ruby version: $rvm_version"
348
366
  fi
349
367
  ;;
350
368
 
351
369
  *)
352
- rvm-log-fail "Ruby implementation '$implementation' is not known."
370
+ rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
353
371
 
354
372
  esac
355
373
 
356
- if [ ! -z "$package_name" ] ; then
357
- for path in $source_path $install_path ; do
358
- if [ -d $path/$package_name ] ; then
359
- rvm-log-info "Removing $path/$package_name..."
360
- rm -rf $path/$package_name
374
+ if [ ! -z "$rvm_package_name" ] ; then
375
+ for path in $rvm_source_path $rvm_install_path ; do
376
+ if [ -d $path/$rvm_package_name ] ; then
377
+ rvm-log-info "Removing $path/$rvm_package_name..."
378
+ rm -rf $path/$rvm_package_name
361
379
  fi
362
380
  done
363
381
  else
364
- rvm-log-fail "Cannot uninstall unknown package '$package_name'"
382
+ rvm-log-fail "Cannot uninstall unknown package '$rvm_package_name'"
365
383
  fi
366
384
 
367
385
  }
368
386
 
369
387
  function rvm-use {
370
388
 
371
- implementation="${1-$implementation}"
372
- case "$implementation" in
389
+ rvm_implementation="${1:-$rvm_implementation}"
390
+ case "$rvm_implementation" in
373
391
 
374
392
  default)
375
- rm -f $install_path/current
376
- source $install_path/default
393
+ rm -f $rvm_install_path/current
377
394
  unset GEM_HOME MY_RUBY_HOME
395
+ source $rvm_install_path/default
378
396
  PATH="$default_path" ; export PATH
379
397
  ;;
380
398
 
381
399
  jruby)
382
- version="${version-1.3.1}"
383
- if [ "$version" = "1.2.0" -o "$version" = "1.3.1" ] ; then
384
- MY_RUBY_HOME="$install_path/jruby-$version"
400
+ rvm_version="${rvm_version:-1.3.1}"
401
+ if [ "$rvm_version" = "1.2.0" -o "$rvm_version" = "1.3.1" ] ; then
402
+ MY_RUBY_HOME="$rvm_install_path/jruby-$rvm_version"
385
403
  GEM_HOME="$HOME/.gem/jruby/1.8"
386
404
  alias ruby_ng="jruby --ng"
387
405
  alias ruby_ng_server="jruby --ng-server"
388
406
  else
389
- rvm-log-fail "Unknown jRuby version: $version"
407
+ rvm-log-fail "Unknown jRuby version: $rvm_version"
390
408
  fi
391
409
  ;;
392
410
 
393
411
  ree)
394
- version=${version-1.8.6}
395
- if [ "$version" = "1.8.6" ] ; then
396
- patchlevel="${3-20090610}"
397
- MY_RUBY_HOME="$install_path/ruby-enterprise-$version-$patchlevel"
412
+ rvm_version=${rvm_version:-1.8.6}
413
+ if [ "$rvm_version" = "1.8.6" ] ; then
414
+ rvm_patchlevel="${3:-20090610}"
415
+ MY_RUBY_HOME="$rvm_install_path/ruby-enterprise-$rvm_version-$rvm_patchlevel"
398
416
  GEM_HOME="$HOME/.gem/ruby-enterprise/1.8"
399
417
  else
400
- rvm-log-fail "Unknown Ruby Enterprise Edition version: $version"
418
+ rvm-log-fail "Unknown Ruby Enterprise Edition version: $rvm_version"
401
419
  fi
402
420
  ;;
403
421
 
404
422
  ruby)
405
- if [ "$version" = "1.8.7" ] ; then
406
- level="${patchlevel-174}"
407
- MY_RUBY_HOME="$install_path/ruby-1.8.7-p$level"
408
- GEM_HOME="$HOME/.gem/ruby/1.8"
409
-
410
- elif [ "$version" = "1.8.6" -o "$version" = "1.8" ] ; then
411
- level="${patchlevel-369}"
412
- MY_RUBY_HOME="$install_path/ruby-1.8.6-p$level"
413
- GEM_HOME="$HOME/.gem/ruby/1.8"
414
-
415
- elif [ "$version" = "1.9.2" ] ; then
416
- level="${patchlevel-review1}"
417
- MY_RUBY_HOME="$install_path/ruby-1.9.2-p$level"
423
+ if [ "$rvm_version" = "1.8.7" ] ; then
424
+ level="${rvm_patchlevel:-174}"
425
+ MY_RUBY_HOME="$rvm_install_path/ruby-1.8.7-p$level"
426
+ GEM_HOME="$HOME/.gem/ruby/1.8.7"
427
+
428
+ elif [ "$rvm_version" = "1.8.6" -o "$rvm_version" = "1.8" ] ; then
429
+ level="${rvm_patchlevel:-369}"
430
+ MY_RUBY_HOME="$rvm_install_path/ruby-1.8.6-p$level"
431
+ GEM_HOME="$HOME/.gem/ruby/1.8.6"
432
+
433
+ elif [ "$rvm_version" = "1.9.2" ] ; then
434
+ level="${rvm_patchlevel:-review1}"
435
+ MY_RUBY_HOME="$rvm_install_path/ruby-1.9.2-p$level"
418
436
  GEM_HOME="$HOME/.gem/ruby/1.9.2"
419
437
 
420
- elif [ "$version" = "1.9.1" -o "$version" = "1.9" ] ; then
421
- level="${patchlevel-243}"
422
- MY_RUBY_HOME="$install_path/ruby-1.9.1-p$level"
438
+ elif [ "$rvm_version" = "1.9.1" -o "$rvm_version" = "1.9" ] ; then
439
+ level="${rvm_patchlevel:-243}"
440
+ MY_RUBY_HOME="$rvm_install_path/ruby-1.9.1-p$level"
423
441
  GEM_HOME="$HOME/.gem/ruby/1.9.1"
424
442
 
425
443
  else
426
- rvm-log-fail "Unknown ruby version: $version"
444
+ rvm-log-fail "Unknown ruby version: $rvm_version"
427
445
  fi
428
446
  ;;
429
447
 
430
448
  *)
431
- rvm-log-fail "Ruby implementation '$implementation' is not known."
449
+ rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
432
450
 
433
451
  esac
434
452
 
435
453
  # Now actually use it.
436
- if [ ! "$implementation" = "default" ] ; then
454
+ if [ ! "$rvm_implementation" = "default" ] ; then
437
455
  # Install if not installed
438
456
  if [ ! -d $MY_RUBY_HOME ] ; then
439
- rvm-log-warn "$implementation $version is not installed."
440
- rvm-install-ruby $implementation $version $level
457
+ rvm-log-warn "$rvm_implementation $rvm_version is not installed."
458
+ rvm-install-ruby $rvm_implementation $rvm_version $level
441
459
  fi
442
460
 
443
461
  # Set as 'current'
444
462
  RUBY_VERSION="$($MY_RUBY_HOME/bin/ruby -v | sed 's/^\(.*\) (.*$/\1/')"
445
463
  export GEM_HOME MY_RUBY_HOME RUBY_VERSION
446
464
 
447
- echo "PATH=$MY_RUBY_HOME/bin:$GEM_HOME/bin:$default_path ; export PATH" > $install_path/current
465
+ echo "PATH=$MY_RUBY_HOME/bin:$GEM_HOME/bin:$default_path ; export PATH" > $rvm_install_path/current
448
466
  for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do
449
467
  eval "export $variable"
450
468
  eval value=\$${variable}
451
- echo "${variable}='$value' ; export ${variable}" >> $install_path/current
469
+ echo "${variable}='$value' ; export ${variable}" >> $rvm_install_path/current
452
470
  done
453
471
  fi
454
472
 
455
- rvm-log-info "Switching to $implementation $version $patchlevel ...\n"
473
+ rvm-log-info "Switching to $rvm_implementation $rvm_version $rvm_patchlevel ...\n"
456
474
  if [ ! -z "$BASH_VERSION" ] ; then
457
475
  exec bash -l
458
476
  elif [ ! -z "$ZSH_VERSION" ] ; then
@@ -464,29 +482,24 @@ function rvm-use {
464
482
  }
465
483
 
466
484
  function rvm-symlinks {
467
- mkdir -p ${install_path}/bin
468
- for release in `ls $install_path | grep 'ruby-'` ; do
485
+
486
+ mkdir -p ${rvm_install_path}/bin
487
+ for release in `ls $rvm_install_path | grep 'ruby-'` ; do
469
488
  for binary in ruby irb gem rdoc ri erb ; do
470
- if [ -x $install_path/$release/bin/$binary ] ; then
471
- ln -fs $install_path/$release/bin/$binary $install_path/bin/$binary-${release#ruby-}
489
+ if [ -x $rvm_install_path/$release/bin/$binary ] ; then
490
+ ln -fs $rvm_install_path/$release/bin/$binary $rvm_install_path/bin/$binary-${release#ruby-}
472
491
  fi
473
492
  done
474
493
  done
494
+
475
495
  }
476
496
 
477
497
  function rvm-list {
478
498
 
479
- echo -e "\nruby:"
480
- ls -l $install_path/ | awk '/ ruby-[1-2].*/ { print " - " $NF }'
481
- echo
482
- echo "jruby:"
483
- ls -l $install_path/ | awk '/jruby-.*/ { print " - " $NF }'
484
- echo
485
- echo "ree:"
486
- ls $install_path/ | awk '/ruby-enterprise-.*/ { print " - " $NF }'
487
- echo
488
- echo "default:"
489
- echo " - system (`$default_system_ruby -v`)"
499
+ echo -e "\nruby:\n$(ls -l $rvm_install_path/ | awk '/ ruby-[1-2].*/ { print " - " $NF }')\n"
500
+ echo -e "jruby:\n$(ls -l $rvm_install_path/ | awk '/jruby-.*/ { print " - " $NF }')\n"
501
+ echo -e "ree:\n$(ls $rvm_install_path/ | awk '/ruby-enterprise-.*/ { print " - " $NF }')\n"
502
+ echo -e "system:\n - ($($default_system_ruby -v))\n"
490
503
 
491
504
  }
492
505
 
@@ -496,7 +509,7 @@ function rvm-reset {
496
509
  for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do
497
510
  unset $variable
498
511
  done
499
- rm -f $install_path/default* $install_path/current
512
+ rm -f $rvm_install_path/default* $rvm_install_path/current
500
513
  if [ ! -z "$BASH_VERSION" ] ; then
501
514
  exec bash -l
502
515
  elif [ ! -z "$ZSH_VERSION" ] ; then
@@ -504,29 +517,29 @@ function rvm-reset {
504
517
  else
505
518
  rvm-log-fail "Your shell is not supported bash and zsh are currently supported."
506
519
  fi
507
-
520
+
508
521
  }
509
-
522
+
510
523
  function rvm-gem-dir {
511
524
 
512
- implementation=${1-$implementation}
513
- if [ "$implementation" = "" ] ; then implementation="current" ; fi
525
+ rvm_implementation=${1:-$rvm_implementation}
526
+ if [ -z "$rvm_implementation" ] ; then rvm_implementation="current" ; fi
514
527
 
515
- case "$implementation" in
528
+ case "$rvm_implementation" in
516
529
  jruby) GEM_HOME="$HOME/.gem/jruby/1.8" ;;
517
530
  ree) GEM_HOME="$HOME/.gem/ruby-enterprise/1.8" ;;
518
531
  ruby)
519
- if [ "${2-$version}" = "1.8" -o "${2-$version}" = "1.8.6" ] ; then
532
+ if [ "${2:-$rvm_version}" = "1.8" -o "${2:-$rvm_version}" = "1.8.6" ] ; then
520
533
  GEM_HOME="$HOME/.gem/ruby/1.8"
521
534
 
522
- elif [ "${2-$version}" = "1.9.2" ] ; then
535
+ elif [ "${2:-$rvm_version}" = "1.9.2" ] ; then
523
536
  GEM_HOME="$HOME/.gem/ruby/1.9.2"
524
537
 
525
- elif [ "${2-$version}" = "1.9" -o "${2-$version}" = "1.9.1" ] ; then
538
+ elif [ "${2:-$rvm_version}" = "1.9" -o "${2:-$rvm_version}" = "1.9.1" ] ; then
526
539
  GEM_HOME="$HOME/.gem/ruby/1.9.1"
527
540
 
528
541
  else
529
- rvm-log-fail "Unknown Version: ${2-$version}"
542
+ rvm-log-fail "Unknown Version: ${2:-$rvm_version}"
530
543
  fi
531
544
  ;;
532
545
  current)
@@ -536,56 +549,56 @@ function rvm-gem-dir {
536
549
  GEM_HOME=$default_system_gem_path
537
550
  ;;
538
551
  user)
539
- GEM_HOME=$default_gem_path
552
+ GEM_HOME=$default_user_gem_path
540
553
  ;;
541
554
  *)
542
- rvm-log-fail "Ruby implementation '$implementation' is not known."
555
+ rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
543
556
  esac
544
557
 
545
558
  if [ -d $GEM_HOME ] ; then
546
559
  echo $GEM_HOME && cd $GEM_HOME
547
560
  else
548
- rvm-log-fail "$implementation $version GEM directory does not exist."
561
+ rvm-log-fail "$rvm_implementation $rvm_version GEM directory does not exist."
549
562
  fi
550
563
 
551
564
  }
552
565
 
553
566
  function rvm-src-dir {
554
- case "${1-$implementation}" in
567
+ case "${1:-$rvm_implementation}" in
555
568
 
556
569
  jruby)
557
- version=${version-1.3.1}
558
- if [ "${2-$version}" = "1.2.0" -o "${2-$version}" = "1.3.1" ] ; then
559
- src_dir="$source_path/$implementation-$version"
570
+ rvm_version=${rvm_version:-1.3.1}
571
+ if [ "${2:-$rvm_version}" = "1.2.0" -o "${2:-$rvm_version}" = "1.3.1" ] ; then
572
+ src_dir="$rvm_source_path/$rvm_implementation-$rvm_version"
560
573
  else
561
- rvm-log-fail "Unknown jRuby version: $version"
574
+ rvm-log-fail "Unknown jRuby version: $rvm_version"
562
575
  fi
563
576
  ;;
564
577
 
565
578
  ree)
566
- version=${version-1.8.6}
567
- if [ "${2-$version}" = "1.8.6" -o "${2-$version}" = "1.8" ] ; then
568
- src_dir="$source_path/ruby-enterprise-${2-$version}-"${3-20090610}""
579
+ rvm_version=${rvm_version:-1.8.6}
580
+ if [ "${2:-$rvm_version}" = "1.8.6" -o "${2:-$rvm_version}" = "1.8" ] ; then
581
+ src_dir="$rvm_source_path/ruby-enterprise-${2:-$rvm_version}-"${3:-20090610}""
569
582
  else
570
- rvm-log-fail "Unknown Ruby Enterprise Edition version: ${2-$version}"
583
+ rvm-log-fail "Unknown Ruby Enterprise Edition version: ${2:-$rvm_version}"
571
584
  fi
572
585
  ;;
573
586
 
574
587
  ruby)
575
- if [ "${2-$version}" = "1.8.7" ] ; then
576
- src_dir="$source_path/ruby-1.8.7-p${patchlevel-174}"
588
+ if [ "${2:-$rvm_version}" = "1.8.7" ] ; then
589
+ src_dir="$rvm_source_path/ruby-1.8.7-p${rvm_patchlevel:-174}"
577
590
 
578
- elif [ "${2-$version}" = "1.8" -o "${2-$version}" = "1.8.6" ] ; then
579
- src_dir="$source_path/ruby-1.8.6-p${patchlevel-369}"
591
+ elif [ "${2:-$rvm_version}" = "1.8" -o "${2:-$rvm_version}" = "1.8.6" ] ; then
592
+ src_dir="$rvm_source_path/ruby-1.8.6-p${rvm_patchlevel:-369}"
580
593
 
581
- elif [ "${2-$version}" = "1.9.2" ] ; then
582
- src_dir="$source_path/ruby-1.9.2-p${patchlevel-review1}"
594
+ elif [ "${2:-$rvm_version}" = "1.9.2" ] ; then
595
+ src_dir="$rvm_source_path/ruby-1.9.2-p${rvm_patchlevel:-review1}"
583
596
 
584
- elif [ "${2-$version}" = "1.9" -o "${2-$version}" = "1.9.1" ] ; then
585
- src_dir="$source_path/ruby-1.9.1-p${patchlevel-243}"
597
+ elif [ "${2:-$rvm_version}" = "1.9" -o "${2:-$rvm_version}" = "1.9.1" ] ; then
598
+ src_dir="$rvm_source_path/ruby-1.9.1-p${rvm_patchlevel:-243}"
586
599
 
587
600
  else
588
- rvm-log-fail "unknown Ruby version: ${2-$version}"
601
+ rvm-log-fail "unknown Ruby version: ${2:-$rvm_version}"
589
602
  fi
590
603
  ;;
591
604
 
@@ -594,14 +607,14 @@ function rvm-src-dir {
594
607
  ;;
595
608
 
596
609
  *)
597
- rvm-log-fail "Ruby implementation '$implementation' is not known."
610
+ rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
598
611
  return 1
599
612
  esac
600
613
 
601
614
  if [ -d $src_dir ] ; then
602
615
  cd $src_dir
603
616
  else
604
- rvm-log-fail "$implementation $version source directory does not exist."
617
+ rvm-log-fail "$rvm_implementation $rvm_version source directory does not exist."
605
618
  fi
606
619
 
607
620
  }
@@ -610,11 +623,11 @@ function rvm-src-dir {
610
623
  function rvm-gem-dup {
611
624
 
612
625
  if [ "$1" = "default" ] ; then
613
- gem_dir="$default_gem_path"
626
+ gem_dir="$default_user_gem_path"
614
627
  elif [ "$1" = "system" ] ; then
615
628
  gem_dir="$default_system_gem_path"
616
629
  else
617
- gem_dir=${1-$default_gem_path} # TODO: check for and remove trailing /gems
630
+ gem_dir=${1:-$default_user_gem_path} # TODO: check for and remove trailing /gems
618
631
  fi
619
632
 
620
633
  if [ ! -z "$gem_dir" ] ; then
@@ -628,173 +641,188 @@ function rvm-gem-dup {
628
641
  fi
629
642
  done
630
643
  else
631
- rvm-log-fail "Unknown $implementation version: $version"
644
+ rvm-log-fail "Unknown $rvm_implementation version: $rvm_version"
632
645
  fi
633
646
 
634
647
  }
635
648
 
636
- function rvm-version { echo "rvm $rvm_version ($rvm_updated) [$rvm_website]" ; }
649
+ function rvm-version { echo "rvm $rvm_meta_version ($rvm_meta_updated) [$rvm_meta_website]" ; }
637
650
 
638
651
  function rvm {
639
652
 
640
653
  # Cleanup, aisle 3
641
- for variable in action implementation patchlevel version source_path install_path manager debug prefix_path ; do
642
- eval "unset $variable"
643
- done
644
-
654
+ for variable in rvm_action rvm_implementation rvm_patchlevel rvm_version rvm_source_path rvm_install_path rvm_debug rvm_prefix_path rvm_package_name; do
655
+ eval "unset $variable"
656
+ done ; unset variable
657
+
658
+ # NOW load defaults settings. TODO: root user loads /etc/rvmrc
659
+ if [ -f ~/.rvmrc ] ; then source ~/.rvmrc ; fi
660
+
645
661
  while [ $# -gt 0 ] ; do
646
- token="$1" ; shift
647
- case "$token" in
648
- install|uninstall|use|path|info|setup|version|srcdir|list|symlinks|reset|debug)
649
- action=$token
662
+ rvm_token="$1" ; shift
663
+ case "$rvm_token" in
664
+ install|uninstall|use|path|info|setup|version|srcdir|list|symlinks|reset|debug|reload)
665
+ rvm_action=$rvm_token
650
666
  ;;
651
667
 
652
668
  ruby|jruby|ree|default|all)
653
- implementation="$token"
654
- action="${action-use}"
669
+ rvm_implementation="$rvm_token"
670
+ rvm_action="${rvm_action:-use}"
655
671
  ;;
656
672
 
657
673
  gemdir)
658
- action=$token
674
+ rvm_action=$rvm_token
659
675
  if [ "$1" = "system" ] ; then
660
- implementation="system" ; shift
676
+ rvm_implementation="system" ; shift
661
677
  fi
662
- if [ "$1" = "user" ] ; then
663
- implementation="user" ; shift
678
+ if [ "$1" = "user" ] ; then
679
+ rvm_implementation="user" ; shift
664
680
  fi
665
681
 
666
- implementation="${implementation-current}"
682
+ rvm_implementation="${rvm_implementation:-current}"
667
683
  ;;
668
684
 
669
685
  gemdup)
670
- action=$token
686
+ rvm_action=$rvm_token
671
687
  if [ -z "$1" ] ; then
672
- implementaiton="default"
688
+ rvm_implementation="default"
673
689
  elif [ "$1" = "system" ] ; then
674
- implementation=$1 ; shift
690
+ rvm_implementation=$1 ; shift
675
691
  elif [ "$1" = "default" ] ; then
676
- implementation=$1 ; shift
692
+ rvm_implementation=$1 ; shift
677
693
  else
678
- implementation=$1 ; shift
679
- version=$2 ; shift
694
+ rvm_implementation=$1 ; shift
695
+ rvm_version=$2 ; shift
680
696
  fi
681
697
  ;;
682
698
 
683
699
  1.8|1.8.6|1.8.7|1.9|1.9.1|1.9.2|1.2.0|1.3.1)
684
- version="$token"
685
- action="${action-use}"
700
+ rvm_version="$rvm_token"
701
+ rvm_action="${rvm_action:-use}"
686
702
  ;;
687
703
 
688
- -v|--version)
689
- if [ -z "$1" ] ; then
690
- action="version"
691
- else
692
- version="$1"
704
+ -v|--version)
705
+ if [ -z "$1" ] ; then
706
+ rvm_action="version"
707
+ else
708
+ rvm_version="$1"
693
709
  fi
694
710
  shift
695
711
  ;;
696
712
 
697
- -l|--level) patchlevel="$1" ; shift ;;
698
- -p|--prefix) install_path="$1" ; shift ;;
699
- -s|--source) source_path="$1" ; shift ;; # Undocumented / untested "feature"
700
- -c|--configure) configure="$1" ; shift ;;
701
- -d|--debug) debug=1 ;;
713
+ -l|--level) rvm_patchlevel="$1" ; shift ;;
714
+ -p|--prefix) rvm_prefix_path="$1" ; shift ;;
715
+ -b|--bin) rvm_bin_path="$1" ; shift ;; # Undocumented / untested "feature"
716
+ -s|--source) rvm_source_path="$1" ; shift ;; # Undocumented / untested "feature"
717
+ -a|--archive) rvm_archives_path="$1" ; shift ;;
718
+ -c|--configure) configure="$1" ; shift ;;
719
+ -n|--nice) niceness="$1" ; shift ;;
720
+ -d|--debug) rvm_debug=1 ;;
702
721
  *) rvm-usage ; return 1
703
- esac
704
- done
722
+ esac
723
+ done
705
724
 
706
- if [ "$debug" = "1" ] ; then set -x ; fi
707
-
708
- curl=`which curl`
725
+ if [ "$rvm_debug" = "1" ] ; then set -x ; fi
726
+
727
+ rvm_curl=`which curl`
709
728
  if [ $? -ne 0 ] ; then
710
729
  rvm-log-fail "rvm expects that curl is available, which curl shows no curl :("
711
730
  else
712
- curl="$curl -O -L -s"
731
+ rvm_curl="$rvm_curl -O -L -s"
713
732
  fi
714
733
 
715
- if [ -z "$implementation" -a -z "$version" ] ; then
716
- implementation="default"
734
+ if [ -z "$rvm_implementation" -a -z "$rvm_version" ] ; then
735
+ rvm_implementation="default"
717
736
  else
718
- implementation=${implementation-'ruby'}
737
+ rvm_implementation=${rvm_implementation:-ruby}
719
738
  fi
720
739
 
740
+ niceness=${niceness:-0}
741
+
721
742
  # TODO: Sanitize user input, ensure that there is a / a the end...
722
- if [ "`whoami`" = "root" ] ; then
743
+ if [ "`whoami`" = "root" ] ; then
723
744
  rvm-log-fail "root user support is not yet implemented."
724
- #prefix_path=${prefix-/usr/local/}
745
+ #rvm_prefix_path=${rvm_prefix_path:-/usr/local/}
746
+ else
747
+ rvm_prefix_path=${rvm_prefix_path:-"$HOME/."}
748
+ fi
749
+ if [ "${rvm_prefix_path#${rvm_prefix_path%?}}" = '.' -o "${rvm_prefix_path#${rvm_prefix_path%?}}" = '/' ] ; then
750
+ rvm_install_path="${rvm_prefix_path}rvm"
725
751
  else
726
- prefix_path=${prefix-$HOME/.}
752
+ rvm_install_path="${rvm_prefix_path}/rvm"
727
753
  fi
728
- source_path="${source_path-"${prefix_path}rvm/src"}"
729
- install_path="${prefix_path}rvm"
730
-
731
- mkdir -p $source_path $install_path/bin
754
+ rvm_archives_path="${rvm_archives_path:-"${rvm_install_path}/archives"}"
755
+ rvm_source_path="${rvm_source_path:-"${rvm_install_path}/src"}"
756
+ rvm_log_path=${rvm_log_path:-"${rvm_install_path}/log"}
757
+ rvm_bin_path=${rvm_bin_path:-"${rvm_install_path}/bin"}
732
758
 
733
- if [ ! -f $install_path/default ] ; then
759
+ PATH=$rvm_bin_path:$PATH ; export PATH
760
+
761
+ mkdir -p $rvm_source_path $rvm_install_path/bin $rvm_archives_path
762
+
763
+ if [ ! -f $rvm_install_path/default ] ; then
734
764
  for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME PATH ; do
735
765
  eval "export $variable"
736
766
  eval value=\$${variable}
737
- echo "${variable}='$value' ; export ${variable}" >> $install_path/default
767
+ echo "${variable}='$value' ; export ${variable}" >> $rvm_install_path/default
738
768
  done
739
769
  fi
740
770
 
741
- if [ -s $install_path/default_path ] ; then
742
- default_path=`cat $install_path/default_path`
771
+ if [ -s $rvm_install_path/default_path ] ; then
772
+ default_path=`cat $rvm_install_path/default_path`
743
773
  else
744
- echo $PATH > $install_path/default_path
774
+ echo $PATH > $rvm_install_path/default_path
745
775
  default_path=$PATH
746
776
  fi
747
777
 
748
- # default (user) gem path
749
- if [ -s $install_path/default_gem_path ] ; then
750
- default_gem_path=`cat $install_path/default_gem_path`
778
+ if [ -s $rvm_install_path/default_user_gem_path ] ; then
779
+ default_user_gem_path=`cat $rvm_install_path/default_user_gem_path`
751
780
  else
752
- ruby -r rubygems -e "puts Gem::default_path.compact.first" > $install_path/default_gem_path
781
+ ruby -r rubygems -e "puts Gem::default_path.compact.first" > $rvm_install_path/default_user_gem_path
753
782
  fi
754
783
 
755
- # system gem path
756
- if [ -s $install_path/default_system_gem_path ] ; then
757
- default_system_gem_path=`cat $install_path/default_system_gem_path`
784
+ if [ -s $rvm_install_path/default_system_gem_path ] ; then
785
+ default_system_gem_path=`cat $rvm_install_path/default_system_gem_path`
758
786
  else
759
- ruby -r rubygems -e "puts Gem::default_path.compact[1] || Gem::default_path.compact.first" > $install_path/default_system_gem_path
787
+ ruby -r rubygems -e "puts Gem::default_path.compact[1] || Gem::default_path.compact.first" > $rvm_install_path/default_system_gem_path
760
788
  fi
761
789
 
762
- # system ruby version
763
- if [ -s $install_path/default_system_ruby ] ; then
764
- default_system_ruby=`cat $install_path/default_system_ruby`
790
+ if [ -s $rvm_install_path/default_system_ruby ] ; then
791
+ default_system_ruby=`cat $rvm_install_path/default_system_ruby`
765
792
  else
766
793
  default_system_ruby=`which ruby`
767
- echo $default_system_ruby > $install_path/default_system_ruby
794
+ echo $default_system_ruby > $rvm_install_path/default_system_ruby
768
795
  fi
769
796
 
770
- case "$action" in
771
- install)
772
- if [ "$implementation" = "all" ] ; then
773
- for implementation in ruby jruby ree ; do
774
- if [ "$implementation" = "ruby" ] ; then
775
- for version in 1.8.6 1.8.7 1.9.1 1.9.2 ; do
776
- rvm-install-ruby $implementation $version $patchlevel
797
+ case "$rvm_action" in
798
+ install)
799
+ if [ "$rvm_implementation" = "all" ] ; then
800
+ for rvm_implementation in ruby jruby ree ; do
801
+ if [ "$rvm_implementation" = "ruby" ] ; then
802
+ for rvm_version in 1.8.6 1.8.7 1.9.1 1.9.2 ; do
803
+ rvm-install-ruby $rvm_implementation $rvm_version
777
804
  done
778
- unset version patchlevel
805
+ unset rvm_version
779
806
  else
780
- rvm-install-ruby $implementation $version $patchlevel
807
+ rvm-install-ruby $rvm_implementation $rvm_version
781
808
  fi
782
809
  done
783
810
  else
784
- rvm-install-ruby $implementation $version $patchlevel
811
+ rvm-install-ruby $rvm_implementation $rvm_version $rvm_patchlevel
785
812
  fi
786
813
  ;;
787
- uninstall) rvm-uninstall $implementation $version $patchlevel ;;
788
- use) rvm-use $implementation $version $patchlevel ;;
789
- list) rvm-list ;;
790
- gemdir) rvm-gem-dir $implementation $version $patchlevel ;;
791
- srcdir) rvm-src-dir $implementation $version $patchlevel ;;
792
- gemdup) rvm-gem-dup $implementation $version $patchlevel ;;
793
- info) rvm-info $implementation $version $patchlevel ;;
794
- symlinks) rvm-symlinks ;;
795
- version) rvm-version ;;
796
- reset) rvm-reset ;;
797
- debug)
814
+ uninstall) rvm-uninstall $rvm_implementation $rvm_version $rvm_patchlevel ;;
815
+ use) rvm-use $rvm_implementation $rvm_version $rvm_patchlevel ;;
816
+ list) rvm-list ;;
817
+ gemdir) rvm-gem-dir $rvm_implementation $rvm_version $rvm_patchlevel ;;
818
+ srcdir) rvm-src-dir $rvm_implementation $rvm_version $rvm_patchlevel ;;
819
+ gemdup) rvm-gem-dup $rvm_implementation $rvm_version $rvm_patchlevel ;;
820
+ info) rvm-info $rvm_implementation $rvm_version $rvm_patchlevel ;;
821
+ symlinks) rvm-symlinks ;;
822
+ version) rvm-version ;;
823
+ reset) rvm-reset ;;
824
+ reload) source ~/.rvm/bin/rvm ;; # TODO: how can we use bin_path here, default file?
825
+ debug)
798
826
  rvm-version
799
827
  rvm-info
800
828
  rvm-log-info "PATH:$(echo $PATH | awk -F":" '{print $1":"$2":"$3":"$4":"$5}')"
@@ -803,21 +831,22 @@ function rvm {
803
831
  rvm-log-info "~/$file: \n$(cat ~/$file| tail -n 5)\n"
804
832
  fi
805
833
  done
806
- rvm-log-info "$install_path/current: \n$(cat $install_path/current)\n"
834
+ rvm-log-info "$rvm_install_path/current: \n$(cat $rvm_install_path/current)\n"
807
835
  return 0
808
836
  ;;
809
- *)
810
- if [ ! -z "$action" ] ; then
811
- rvm-log-fail "unknown action '$action'"
837
+ *)
838
+ if [ ! -z "$rvm_action" ] ; then
839
+ rvm-log-fail "unknown action '$rvm_action'"
812
840
  else
813
- rvm-usage
841
+ rvm-usage
814
842
  fi
815
843
  return 1
816
844
  esac
817
845
 
818
- if [ "$debug" = "1" ] ; then set +x ; fi
846
+ if [ "$rvm_debug" = "1" ] ; then set +x ; unset rvm_debug ; fi
819
847
 
820
848
  }
821
849
 
850
+ # TODO: Make this optional:
822
851
  if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi # magic :)
823
852
 
data/bash/rvm-install CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/bin/bash
2
2
 
3
3
  user=`whoami`
4
- if [ "$user" = "root" ] ; then
4
+ if [ "$user" = "root" ] ; then
5
5
  echo -e "\033[0;31m <e> \033[0mroot user support is not yet implemented.\033[0m"
6
6
  exit 1
7
7
  fi
@@ -11,7 +11,9 @@ question="\n\033[0;32m<?>\033[0m"
11
11
 
12
12
  echo -e "Installing rvm source to ~/.rvm/bin/rvm..."
13
13
  mkdir -p ~/.rvm/src ~/.rvm/bin
14
- cp $(pwd)/bash/rvm ~/.rvm/bin/
14
+ for script in rvm ; do # Preparing for refactoring.
15
+ cp "`dirname "${0}"`/$script" ~/.rvm/bin/
16
+ done
15
17
 
16
18
  # State what is required to use rvm
17
19
  echo -e "\n\033[0;32mrvm\033[0m is a shell script that allows a user to manage multiple ruby versions in their own account."
@@ -25,7 +27,7 @@ while : ; do
25
27
  echo 'w00t!'
26
28
  break
27
29
  elif [ "${response:0:1}" = "m" ] ; then
28
- echo -e "$info Please make sure that both lines (a) and (b) are in place, with (a) sourced *first*."
30
+ echo -e "$info Please make sure that this line is in place."
29
31
  break
30
32
  fi
31
33
  done
@@ -46,9 +48,9 @@ if [ "${response:0:1}" = "s" ] ; then
46
48
  break
47
49
  fi
48
50
  done
49
-
51
+
50
52
  if [ "$user_shell" = "bash" -o "$user_shell" = "both" ] ; then
51
-
53
+
52
54
  touch ~/.bash_profile
53
55
  if [ -z "`grep '\.rvm/bin/rvm' ~/.bash_profile`" ] ; then
54
56
  echo "Adding 'if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi' to your ~/.bash_profile."
@@ -59,22 +61,18 @@ if [ "${response:0:1}" = "s" ] ; then
59
61
  echo "Adding 'if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi' to your ~/.bashrc."
60
62
  echo "if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi" >> ~/.bashrc
61
63
  fi
62
-
63
-
64
- elif [ "$user_shell" = "zsh" -o "$user_shell" = "both" ] ; then
65
-
64
+
65
+ fi
66
+
67
+ if [ "$user_shell" = "zsh" -o "$user_shell" = "both" ] ; then
68
+
66
69
  touch ~/.zshrc
67
70
  if [ -z "`grep '\.rvm/bin/rvm' ~/.zshrc`" ] ; then
68
71
  echo "Adding 'if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi' to your ~/.zshrc."
69
72
  echo "if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi" >> ~/.zshrc
70
73
  fi
71
-
72
- else
73
-
74
- echo -e "\n\033[0;31m<e> An error has occurred, we were expecting either bash or zsh however we encountered $user_shell \033[0m"
75
- return 1
76
-
77
74
  fi
75
+
78
76
  fi
79
77
 
80
78
  system=`uname`
@@ -103,9 +101,9 @@ fi
103
101
  source ~/.rvm/bin/rvm
104
102
  rvm symlinks
105
103
 
106
- echo -e "\n$info If you add ~/.rvm/bin/ to your path you will be able to refer to installed ruby binaries using: <implementation>-<version>p<patchlevel>"
104
+ echo -e "\n$info If you add ~/.rvm/bin/ to your path you will be able to refer to installed ruby binaries using: <implementation>-<version><patchlevel>"
107
105
  echo -e " For example: ruby-1.9.1-p243 -e 'puts \"hello world\"' #=> hello world"
108
- echo -e "$info Contact wayneeseguin on irc.freenod.net in #rvm for any questions / feedback."
106
+ echo -e "$info Contact wayneeseguin on irc.freenode.net in #rvm for any questions / feedback."
109
107
  echo -e " I truly hope that you find rvm helpful! Thank you very much for using rvm. \n"
110
108
  echo -e " ~ Wayne"
111
109
 
data/bash/rvm-update CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/bin/bash
2
2
 
3
3
  user=`whoami`
4
- if [ "$user" = "root" ] ; then
5
- echo -e "\033[0;31m <e> \033[0mroot user support is not yet implemented.\033[0m"
4
+ if [ "$user" = "root" ] ; then
5
+ echo -e "\033[0;31m <e> \033[0mroot user support is not implemented yet.\033[0m"
6
6
  exit 1
7
7
  fi
8
8
 
@@ -10,7 +10,9 @@ info="\n\033[0;32m<i>\033[0m"
10
10
 
11
11
  echo -e "$info Updating rvm source ~/.rvm/bin/rvm ..."
12
12
  mkdir -p ~/.rvm/src ~/.rvm/bin
13
- cp $(pwd)/bash/rvm ~/.rvm/bin/
13
+ for script in rvm ; do # Prepairing for refactoring.
14
+ cp "`dirname "${0}"`/$script" ~/.rvm/bin/
15
+ done
14
16
 
15
17
  echo -e "\n Thank you, come again! \n"
16
18
  echo -e " ~ Wayne"
data/bash/rvmrc.sample ADDED
@@ -0,0 +1,30 @@
1
+ # Example rvm Defaults file.
2
+ # This file shows some examples of setting defaults to your own tastes.
3
+
4
+ # Default action to assume
5
+ #rvm_action="use"
6
+
7
+ # Default ruby implementation
8
+ #rvm_implementation="ruby"
9
+
10
+ # Default ruby version
11
+ #rvm_version="1.8.6"
12
+
13
+ # Default patchlevel to set, if implementation is set
14
+ #rvm_patchlevel="369"
15
+
16
+ # Default prefix path (~/, or /usr/local/src/ for example.)
17
+ #rvm_prefix_path="$HOME/."
18
+
19
+ # Default Install Path
20
+ #rvm_install_path="${rvm_prefix_path}rvm"
21
+
22
+ # Default Archives Path
23
+ #rvm_archive_path="${rvm_install_path}/archives"
24
+
25
+ # Default Source Path
26
+ #rvm_source_path="${rvm_install_path}/src"
27
+
28
+ # Default Log Path
29
+ #rvm_log_path="${rvm_install_path}/log"
30
+
data/rvm.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rvm}
8
- s.version = "0.0.22"
8
+ s.version = "0.0.24"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Wayne E. Seguin"]
12
- s.date = %q{2009-08-26}
12
+ s.date = %q{2009-08-27}
13
13
  s.description = %q{Manages Ruby interpreter installations and switching between them.}
14
14
  s.email = %q{wayneeseguin@gmail.com}
15
15
  s.executables = ["rvm-install", "rvm-update"]
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  "bash/rvm",
24
24
  "bash/rvm-install",
25
25
  "bash/rvm-update",
26
+ "bash/rvmrc.sample",
26
27
  "lib/rvm.rb",
27
28
  "rvm.gemspec"
28
29
  ]
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.22
4
+ version: 0.0.24
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-26 00:00:00 -07:00
12
+ date: 2009-08-27 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -29,6 +29,7 @@ files:
29
29
  - bash/rvm
30
30
  - bash/rvm-install
31
31
  - bash/rvm-update
32
+ - bash/rvmrc.sample
32
33
  - lib/rvm.rb
33
34
  - rvm.gemspec
34
35
  has_rdoc: false