wayneeseguin-rvm 0.0.9 → 0.0.15

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 (5) hide show
  1. data/README +36 -14
  2. data/bash/rvm +285 -141
  3. data/bash/rvm-install +96 -20
  4. data/bin/rvm-install +1 -1
  5. metadata +2 -3
data/README CHANGED
@@ -1,10 +1,15 @@
1
1
 
2
2
  About:
3
3
 
4
- rvm 0.0.8 http://github.com/wayneeseguin/rvm
4
+ rvm 0.0.18 http://github.com/wayneeseguin/rvm
5
5
 
6
6
  by Wayne E. Seguin (wayneeseguin@gmail.com)
7
7
 
8
+ Installation:
9
+
10
+ $ gem install rvm # Install the rvm gem
11
+ $ rvm-install # Install rvm, adds hooks for bash & zsh
12
+
8
13
  Usage:
9
14
 
10
15
  rvm Action [Implementation] [Options]
@@ -12,15 +17,18 @@
12
17
  Action:
13
18
 
14
19
  * usage - Show this usage information
15
- use - Switch to using a specific ruby versio (new login shell)
20
+ use - Switch to using a specific ruby version (new login shell)
16
21
  info - Show information for current ruby
22
+ list - Show currently installed versions
17
23
  gemdir - Switch to gem directory for installation (new login shell)
18
24
  srcdir - Switch to src directory for the current ruby installation
19
- gemdup - Clone source implementation version gems to currently used version
20
- (expiramental) Example: rvm gemdup ~/.gem/ruby/1.8/
25
+ gemdup - Clone source version gems to current version
26
+ (highly expiramental) Example: rvm gemdup ~/.gem/ruby/1.8/
21
27
  install - Install a ruby version, default is from source
22
28
  uninstall - Uninstall a ruby version
23
- debug - Emit environment and configuration information for debugging
29
+ reset - Remove default and current settings, exit the shell.
30
+ (If you experience odd behavior try this first)
31
+ debug - Emit environment & configuration information for *current* ruby
24
32
 
25
33
  Implementation:
26
34
 
@@ -44,29 +52,33 @@
44
52
  * Defaults above are denoted with a '*' prefix.
45
53
  * rvm is intended to be run as an individual user (not root, yet)
46
54
  * All ruby installation, configuration and source files are in ~/.rvm
47
- * To manually reset to defaults: "rm -f ~/.rvm/current", then open new shell
48
- * To preserve previous gem installations for a particular ruby version copy,
49
- move, symlink or copy the old gem directory to (1.8 for 1.8.X):
50
- ~/.gem/$interpreter/$version
51
55
 
52
56
  Examples:
53
57
 
54
- $ gem install rvm # Install the rvm gem
55
- $ rvm-install # Install rvm, adds hooks for bash & zsh
58
+ $ rvm -v # RVM version
59
+ $ rvm list # available rvm versions
60
+ $ rvm info # ruby information for current shell
56
61
  $ rvm install jruby # Install jRuby (default version is 1.3.1)
57
62
  $ rvm use ruby -v 1.9.1 # Use Ruby 1.9.1, installs if necessary
58
63
  $ rvm use 1.9 # Equivalent to above, due to defaults
59
64
  $ rvm use 1.8 # Use Ruby 1.8.6, installs if necessary
65
+ $ rvm gemdir # Switch to gems directory for current ruby
66
+ $ rvm gemdir system # Switch to the system gems directory
67
+ $ rvm gemdir system user # Switch to the system user gems directory
68
+ $ rvm gemdir ruby 1.9 # Switch to gems directory for ruby 1.9.1
60
69
  $ rvm use default # Use the system default (as if no rvm)
61
- $ rvm gemdup ~/.gem/ruby/1.8/ # Install gems from ~/.gem/ruby/1.8/
70
+ $ rvm reset # Reset to pre-rvm state.
71
+ $ rvm uninstall 1.8.7 # Uninstall rvm installed 1.8.7 version
72
+ $ rvm gemdup default # Install gems from ~/.gem/ruby/1.8/
62
73
 
63
74
  TODO: (in order)
64
75
 
65
- * rvm gemdir default
76
+ * rvm gemdup
66
77
  * root support
67
78
  * Settings file, user overridable
79
+ * Show current in rvm list, if applicable
68
80
 
69
- Credits:
81
+ Many Thanks:
70
82
 
71
83
  Bash Support Testing
72
84
 
@@ -81,3 +93,13 @@
81
93
  - Franco Lazzarino (flazzarino@gmail.com)
82
94
  irc: flazz ; github: http://github.com/flazz
83
95
 
96
+ Ubuntu Linux Support Testing
97
+
98
+ - Anita Kuno (anteaya@anteaya.info)
99
+ irc: anteaya ; github: http://github.com/anteaya
100
+
101
+ Website Design
102
+
103
+ - Jim Lindley (jlindley@gmail.com)
104
+ irc: jlindley ; github: http://github.com/jlindley
105
+
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.9"
6
+ rvm_version="0.0.19"
7
7
  rvm_updated="2009.08.25"
8
8
 
9
9
  #
@@ -23,6 +23,11 @@ function rvm-usage {
23
23
 
24
24
  by ${rvm_author} (${rvm_author_email})
25
25
 
26
+ Installation:
27
+
28
+ $ gem install rvm # Install the rvm gem
29
+ $ rvm-install # Install rvm, adds hooks for bash & zsh
30
+
26
31
  Usage:
27
32
 
28
33
  rvm Action [Implementation] [Options]
@@ -30,16 +35,18 @@ function rvm-usage {
30
35
  Action:
31
36
 
32
37
  * usage - Show this usage information
33
- use - Switch to using a specific ruby versio (new login shell)
38
+ use - Switch to using a specific ruby version (new login shell)
34
39
  info - Show information for current ruby
35
40
  list - Show currently installed versions
36
41
  gemdir - Switch to gem directory for installation (new login shell)
37
42
  srcdir - Switch to src directory for the current ruby installation
38
- gemdup - Clone source implementation version gems to currently used version
39
- (expiramental) Example: rvm gemdup ~/.gem/ruby/1.8/
43
+ gemdup - Clone source version gems to current version
44
+ (highly expiramental) Example: rvm gemdup ~/.gem/ruby/1.8/
40
45
  install - Install a ruby version, default is from source
41
46
  uninstall - Uninstall a ruby version
42
- debug - Emit environment and configuration information for debugging
47
+ reset - Remove default and current settings, exit the shell.
48
+ (If you experience odd behavior try this first)
49
+ debug - Emit environment & configuration information for *current* ruby
43
50
 
44
51
  Implementation:
45
52
 
@@ -63,30 +70,33 @@ function rvm-usage {
63
70
  * Defaults above are denoted with a '*' prefix.
64
71
  * rvm is intended to be run as an individual user (not root, yet)
65
72
  * All ruby installation, configuration and source files are in ~/.rvm
66
- * To manually reset to defaults: "rm -f ~/.rvm/current", then open new shell
67
- * To preserve previous gem installations for a particular ruby version copy,
68
- move, symlink or copy the old gem directory to (1.8 for 1.8.X):
69
- ~/.gem/\$interpreter/\$version
70
73
 
71
74
  Examples:
72
75
 
73
- $ gem install rvm # Install the rvm gem
74
- $ rvm-install # Install rvm, adds hooks for bash & zsh
76
+ $ rvm -v # RVM version
77
+ $ rvm list # available rvm versions
78
+ $ rvm info # ruby information for current shell
75
79
  $ rvm install jruby # Install jRuby (default version is 1.3.1)
76
80
  $ rvm use ruby -v 1.9.1 # Use Ruby 1.9.1, installs if necessary
77
81
  $ rvm use 1.9 # Equivalent to above, due to defaults
78
82
  $ rvm use 1.8 # Use Ruby 1.8.6, installs if necessary
83
+ $ rvm gemdir # Switch to gems directory for current ruby
84
+ $ rvm gemdir system # Switch to the system gems directory
85
+ $ rvm gemdir system user # Switch to the system user gems directory
86
+ $ rvm gemdir ruby 1.9 # Switch to gems directory for ruby 1.9.1
79
87
  $ rvm use default # Use the system default (as if no rvm)
80
- $ rvm gemdup ~/.gem/ruby/1.8/ # Install gems from ~/.gem/ruby/1.8/
88
+ $ rvm reset # Reset to pre-rvm state.
89
+ $ rvm uninstall 1.8.7 # Uninstall rvm installed 1.8.7 version
90
+ $ rvm gemdup default # Install gems from ~/.gem/ruby/1.8/
81
91
 
82
92
  TODO: (in order)
83
93
 
84
- * rvm gemdir default
94
+ * rvm gemdup
85
95
  * root support
86
96
  * Settings file, user overridable
87
97
  * Show current in rvm list, if applicable
88
98
 
89
- Credits:
99
+ Many Thanks:
90
100
 
91
101
  Bash Support Testing
92
102
 
@@ -101,39 +111,51 @@ function rvm-usage {
101
111
  - Franco Lazzarino (flazzarino@gmail.com)
102
112
  irc: flazz ; github: http://github.com/flazz
103
113
 
114
+ Ubuntu Linux Support Testing
115
+
116
+ - Anita Kuno (anteaya@anteaya.info)
117
+ irc: anteaya ; github: http://github.com/anteaya
118
+
119
+ Website Design
120
+
121
+ - Jim Lindley (jlindley@gmail.com)
122
+ irc: jlindley ; github: http://github.com/jlindley
123
+
104
124
  Usage
105
125
 
106
126
  }
107
127
 
108
128
  # Logging functions based on level
109
- function log { echo -e "\n $* \e[0m" ; }
110
- function debug { log "\e[4;34m <d> \e[0m$*" ; }
111
- function info { log "\e[0;32m <i> \e[0m$*" ; }
112
- function warn { log "\e[0;33m <w> \e[0m$*" ; }
113
- function error { log "\e[0;31m <e> \e[0m$*" ; }
114
- function fail { log "\e[0;31m <e> \e[0m$*" ; return 1 ; }
129
+ function rvm-log { echo -e "\n $* \e[0m" ; }
130
+ function rvm-log-debug { rvm-log "\e[4;34m <d> \e[0m$*" ; }
131
+ function rvm-log-info { rvm-log "\e[0;32m <i> \e[0m$*" ; }
132
+ function rvm-log-warn { rvm-log "\e[0;33m <w> \e[0m$*" ; }
133
+ function rvm-log-error { rvm-log "\e[0;31m <e> \e[0m$*" ; }
134
+ function rvm-log-fail { rvm-log "\e[0;31m <e> \e[0m$*" ; return 1 ; }
115
135
 
116
136
  function rvm-gi { gem install -q --no-rdoc --no-ri $* ; }
117
137
 
118
138
  function rvm-info {
119
139
 
120
- full_version=$(ruby -v)
121
- ruby_implementation=$(echo "$full_version" | awk '{print $1}')
122
- ruby_version=$(echo "$full_version" | awk '{print $2}')
123
- ruby_patchlevel=$(echo "$full_version" | sed 's/^.*(//' | sed 's/).*$//')
124
- ruby_date=$(echo "$full_version" | sed 's/^.*(\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\).*$/\1/')
125
- ruby_platform=$(echo "$full_version" | sed 's/^.*\[//' | sed 's/\].*$//')
126
-
127
140
  cat <<-Info
141
+
128
142
  ruby:
129
- implementation: "$ruby_implementation"
130
- version: "$ruby_version"
131
- date: "$ruby_date"
132
- platform: "$ruby_platform"
133
- patchlevel: "$ruby_patchlevel"
134
- gem_home: "${GEM_HOME-not set}"
135
- ruby_home: "${ruby_home-not set}"
136
- full_version: "$full_version"
143
+ interpreter: "$(ruby -v | awk '{print $1}')"
144
+ version: "$(ruby -v | awk '{print $2}')"
145
+ date: "$(ruby -v | sed 's/^.*(\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\).*$/\1/')"
146
+ platform: "$(ruby -v | sed 's/^.*\[//' | sed 's/\].*$//')"
147
+ patchlevel: "$(ruby -v | sed 's/^.*(//' | sed 's/).*$//')"
148
+ full_version: "$(ruby -v)"
149
+
150
+ homes:
151
+ gem: "${GEM_HOME-not set}"
152
+ ruby: "${MY_RUBY_HOME-not set}"
153
+
154
+ binaries:
155
+ ruby: "$(which ruby)"
156
+ irb: "$(which irb)"
157
+ gem: "$(which gem)"
158
+
137
159
  Info
138
160
 
139
161
  }
@@ -146,13 +168,13 @@ function rvm-install-source {
146
168
  1.9.2) major="1.9" ; minor="2" ; level="${2-review1}" ;;
147
169
  1.8|1.8.6) major="1.8" ; minor="6" ; level="${2-369}" ;;
148
170
  1.8.7) major="1.8" ; minor="7" ; level="${2-174}" ;;
149
- *) fail "Ruby version '$version' is unknown."
171
+ *) rvm-log-fail "Ruby version '$version' is unknown."
150
172
  esac
151
173
 
152
174
  package_name="ruby-$major.$minor-p$level"
153
175
  url="ftp://ftp.ruby-lang.org/pub/ruby/$major/$package_name.tar.gz"
154
176
 
155
- info "Installing Ruby from source to: $install_path/$package_name"
177
+ rvm-log-info "Installing Ruby from source to: $install_path/$package_name"
156
178
  mkdir -p $install_path/$package_name
157
179
 
158
180
  pushd $source_path > /dev/null
@@ -160,41 +182,44 @@ function rvm-install-source {
160
182
  cd $package_name
161
183
  else
162
184
  if [ ! -f "$package_name.tar.gz" ] ; then
163
- info "\tDownloading $package_name, this may take a while depending on your connection..."
164
- curl -O -L -s $url
185
+ rvm-log-info "\tDownloading $package_name, this may take a while depending on your connection..."
186
+ $curl $url
165
187
  fi
166
- info "\tExtracting $package_name..."
188
+ rvm-log-info "\tExtracting $package_name..."
167
189
  tar xzf $package_name.tar.gz && cd $package_name
168
190
  fi
169
191
 
170
- info "\tConfiguring $package_name using ${configure-'--enable-shared'}, this may take a while depending on your cpu(s)..."
192
+ rvm-log-info "\tConfiguring $package_name using ${configure-'--enable-shared'}, this may take a while depending on your cpu(s)..."
171
193
  ./configure --prefix=$install_path/$package_name ${configure-'--enable-shared'} > $install_path/$package_name/configure.log 2> $install_path/$package_name/configure.error.log
172
194
 
173
- info "\tCompiling $package_name, this may take a while, depending on your cpu(s)..."
195
+ rvm-log-info "\tCompiling $package_name, this may take a while, depending on your cpu(s)..."
174
196
  make > $install_path/$package_name/make.log 2> $install_path/$package_name/make.error.log
175
197
 
176
- info "\tInstalling $package_name"
198
+ rvm-log-info "\tInstalling $package_name"
177
199
  make install > $install_path/$package_name/install.log 2> $install_path/$package_name/install.error.log
178
200
  chmod +x $install_path/$package_name/bin/*
179
201
 
202
+ # Create the ~/.rvm/bin/$package_name
203
+ ln -fs $install_path/$package_name/bin/ruby $install_path/bin/$package_name
204
+
180
205
  # Now install rubygems for this ruby version.
181
- info "\tInstalling rubygems dedicated to $package_name..."
206
+ rvm-log-info "\tInstalling rubygems dedicated to $package_name..."
182
207
  gem_package_name="rubygems-1.3.5"
183
208
  gem_url="http://rubyforge.org/frs/download.php/60718/$gem_package_name.tgz"
184
209
  if [ -d $gem_package_name ] ; then
185
210
  cd $gem_package_name
186
211
  else
187
- if [ ! -f $gem_package_name.tgz ] ; then curl -O -L -s $gem_url ; fi
212
+ if [ ! -f $gem_package_name.tgz ] ; then $curl $gem_url ; fi
188
213
  tar zxf $gem_package_name.tgz && cd $gem_package_name
189
214
  fi
190
215
  # Well this is fun... fix nil error on require_paths:
191
216
  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
217
  $install_path/$package_name/bin/ruby ./setup.rb > $install_path/$package_name/rubygems.install.log 2> $install_path/$package_name/rubygems.install.error.log
193
218
  popd > /dev/null
194
- info "Installation of $package_name complete."
219
+ rvm-log-info "Installation of $package_name complete."
195
220
 
196
221
  for gem_name in rake ; do
197
- info "Installing $gem_name"
222
+ rvm-log-info "Installing $gem_name"
198
223
  $install_path/$package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $install_path/$package_name/gems.install.log
199
224
  done
200
225
  }
@@ -208,41 +233,43 @@ function rvm-install-ruby {
208
233
  patchlevel=${patchlevel-20090610}
209
234
  package_name="ruby-enterprise-$version-$patchlevel"
210
235
  url="http://rubyforge.org/frs/download.php/58677/$package_name.tar.gz"
211
- info "Installing Ruby Enterprise Edition from source to: $install_path/$package_name"
236
+ rvm-log-info "Installing Ruby Enterprise Edition from source to: $install_path/$package_name"
212
237
  pushd $source_path > /dev/null
213
238
  if [ -d $package_name ] ; then
214
239
  cd $package_name
215
240
  else
216
241
  if [ ! -f "$package_name.tar.gz" ] ; then
217
- info "\tDownloading $package_name, this may take a while depending on your connection..."
218
- curl -O -L -s $url
242
+ rvm-log-info "\tDownloading $package_name, this may take a while depending on your connection..."
243
+ $curl $url
219
244
  fi
220
- info "\tExtracting $package_name..."
245
+ rvm-log-info "\tExtracting $package_name..."
221
246
  tar xzf $package_name.tar.gz && cd $package_name
222
247
  fi
223
248
 
224
- info "\tInstalling $package_name, this may take a while, depending on your cpu(s)..."
249
+ rvm-log-info "\tInstalling $package_name, this may take a while, depending on your cpu(s)..."
225
250
  mkdir -p $install_path/$package_name
226
251
  ./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
227
252
  chmod +x $install_path/$package_name/bin/*
228
253
 
229
- info "\tInstalling rubygems dedicated to $package_name..."
254
+ ln -fs $install_path/$package_name/bin/ruby $install_path/bin/$package_name
255
+
256
+ rvm-log-info "\tInstalling rubygems dedicated to $package_name..."
230
257
  gem_package_name="rubygems-1.3.5"
231
258
  gem_url="http://rubyforge.org/frs/download.php/60718/$gem_package_name.tgz"
232
259
  if [ -d $gem_package_name ] ; then
233
260
  cd $gem_package_name
234
261
  else
235
- if [ ! -f $gem_package_name.tgz ] ; then curl -O -L -s $gem_url ; fi
262
+ if [ ! -f $gem_package_name.tgz ] ; then $curl $gem_url ; fi
236
263
  tar zxf $gem_package_name.tgz && cd $gem_package_name
237
264
  fi
238
265
  # Well this is fun... fix nil error on require_paths:
239
266
  sed -i '' "s/require_paths\.join/require_paths.to_a.join/" $source_path/$package_name/$gem_package_name/lib/rubygems/gem_path_searcher.rb
240
267
  $install_path/$package_name/bin/ruby ./setup.rb > $install_path/$package_name/rubygems.install.log 2> $install_path/$package_name/rubygems.install.error.log
241
- info "Installation of $package_name complete."
268
+ rvm-log-info "Installation of $package_name complete."
242
269
  popd > /dev/null
243
270
 
244
271
  for gem_name in rake ; do
245
- info "Installing $gem_name"
272
+ rvm-log-info "Installing $gem_name"
246
273
  $install_path/$package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $install_path/$package_name/gems.install.log
247
274
  done
248
275
  ;;
@@ -254,31 +281,34 @@ function rvm-install-ruby {
254
281
  package_name="$implementation-$version"
255
282
  url="http://dist.codehaus.org/$implementation/$version/$zipfile.zip"
256
283
 
257
- info "Installing jRuby to: $install_path/$package_name"
284
+ rvm-log-info "Installing jRuby to: $install_path/$package_name"
258
285
  mkdir -p $install_path/$package_name
259
286
  pushd $source_path > /dev/null
260
287
  if [ -d $zipfile ] ; then
261
288
  cd $zipfile
262
289
  else
263
290
  if [ ! -f "$zipfile.zip" ] ; then
264
- info "\tDownloading $zipfile, this may take a while depending on your connection..."
265
- curl -O -L -s $url
291
+ rvm-log-info "\tDownloading $zipfile, this may take a while depending on your connection..."
292
+ $curl $url
266
293
  fi
267
- info "\tExtracting $zipfile..."
294
+ rvm-log-info "\tExtracting $zipfile..."
268
295
  jar xf $zipfile.zip
269
296
  fi
270
297
 
271
- info "\tInstalling $package_name..."
298
+ rvm-log-info "\tInstalling $package_name..."
272
299
  mkdir -p $install_path/$package_name/bin/
273
300
  rsync -ag $source_path/$package_name/ $install_path/$package_name/
274
301
  cd $source_path/$package_name/tool/nailgun && make > $install_path/$package_name/install.nailgun.log 2> $install_path/$package_name/install.error.nailgun.log
275
302
  popd > /dev/null
276
303
  chmod +x $install_path/$package_name/bin/*
277
304
  for binary in jruby jgem jirb ; do
278
- ln -sf $install_path/$package_name/bin/$binary $install_path/$package_name/bin/${binary#j}
305
+ ln -fs $install_path/$package_name/bin/$binary $install_path/$package_name/bin/${binary#j}
279
306
  done
307
+
308
+ ln -fs $install_path/$package_name/bin/ruby $install_path/bin/$package_name
309
+
280
310
  for gem_name in rake jruby-openssl ; do
281
- info "Installing $gem_name"
311
+ rvm-log-info "Installing $gem_name"
282
312
  $install_path/$package_name/bin/jgem install $gem_name --no-rdoc --no-ri -q >> $install_path/$package_name/gems.install.log
283
313
  done
284
314
  ;;
@@ -288,9 +318,9 @@ function rvm-install-ruby {
288
318
  ;;
289
319
 
290
320
  default)
291
- fail "please specify a ruby implementation to install."
321
+ rvm-log-fail "please specify a ruby implementation to install."
292
322
  ;;
293
- *) fail "Ruby implementation '$implementation' is not known."
323
+ *) rvm-log-fail "Ruby implementation '$implementation' is not known."
294
324
 
295
325
  esac
296
326
 
@@ -306,7 +336,7 @@ function rvm-uninstall {
306
336
  if [ "$version" = "1.2.0" -o "$version" = "1.3.1" ] ; then
307
337
  package_name="jruby*-$version"
308
338
  else
309
- fail "Unknown jRuby version: $version"
339
+ rvm-log-fail "Unknown jRuby version: $version"
310
340
  fi
311
341
  ;;
312
342
 
@@ -315,7 +345,7 @@ function rvm-uninstall {
315
345
  if [ "$version" = "1.8.6" ] ; then
316
346
  package_name="$install_path/ruby-enterprise-$version-${3-20090610}"
317
347
  else
318
- fail "Unknown Ruby Enterprise Edition version: $version"
348
+ rvm-log-fail "Unknown Ruby Enterprise Edition version: $version"
319
349
  fi
320
350
  ;;
321
351
 
@@ -333,24 +363,24 @@ function rvm-uninstall {
333
363
  package_name="ruby-1.9.1-p${patchlevel-243}"
334
364
 
335
365
  else
336
- fail "Unknown ruby version: $version"
366
+ rvm-log-fail "Unknown ruby version: $version"
337
367
  fi
338
368
  ;;
339
369
 
340
370
  *)
341
- fail "Ruby implementation '$implementation' is not known."
371
+ rvm-log-fail "Ruby implementation '$implementation' is not known."
342
372
 
343
373
  esac
344
374
 
345
375
  if [ ! -z "$package_name" ] ; then
346
376
  for path in $source_path $install_path ; do
347
377
  if [ -d $path/$package_name ] ; then
348
- info "Removing $path/$package_name"
378
+ rvm-log-info "Removing $path/$package_name"
349
379
  rm -rf $path/$package_name
350
380
  fi
351
381
  done
352
382
  else
353
- fail "Cannot uninstall unknown package '$package_name'"
383
+ rvm-log-fail "Cannot uninstall unknown package '$package_name'"
354
384
  fi
355
385
 
356
386
  }
@@ -361,15 +391,11 @@ function rvm-use {
361
391
  case "$implementation" in
362
392
 
363
393
  default)
364
- # TODO: There is a reproducible bug here when switching off of 1.8.7...
365
- # Seems that the path is not reset properly.
366
- rm -f ~/.rvm/current
367
- unset MY_RUBY_HOME
368
- unset GEM_HOME
369
- unset RUBY_VERSION
370
- PATH=$original_path ; export PATH
394
+ rm -f $install_path/current
395
+ source $install_path/default
396
+ unset GEM_HOME MY_RUBY_HOME
397
+ PATH="$default_path" ; export PATH
371
398
  ;;
372
- #leopard) MY_RUBY_HOME="/System/Library/Frameworks/Ruby.framework/Versions/Current/usr"; GEM_HOME="$HOME/.gem/ruby/1.8" ;;
373
399
 
374
400
  jruby)
375
401
  version="${version-1.3.1}"
@@ -379,7 +405,7 @@ function rvm-use {
379
405
  alias ruby_ng="jruby --ng"
380
406
  alias ruby_ng_server="jruby --ng-server"
381
407
  else
382
- fail "Unknown jRuby version: $version"
408
+ rvm-log-fail "Unknown jRuby version: $version"
383
409
  fi
384
410
  ;;
385
411
 
@@ -390,7 +416,7 @@ function rvm-use {
390
416
  MY_RUBY_HOME="$install_path/ruby-enterprise-$version-$patchlevel"
391
417
  GEM_HOME="$HOME/.gem/ruby-enterprise/1.8"
392
418
  else
393
- fail "Unknown Ruby Enterprise Edition version: $version"
419
+ rvm-log-fail "Unknown Ruby Enterprise Edition version: $version"
394
420
  fi
395
421
  ;;
396
422
 
@@ -416,136 +442,174 @@ function rvm-use {
416
442
  GEM_HOME="$HOME/.gem/ruby/1.9.1"
417
443
 
418
444
  else
419
- fail "Unknown ruby version: $version"
445
+ rvm-log-fail "Unknown ruby version: $version"
420
446
  fi
421
447
  ;;
422
448
 
423
449
  *)
424
- fail "Ruby implementation '$implementation' is not known."
450
+ rvm-log-fail "Ruby implementation '$implementation' is not known."
425
451
 
426
452
  esac
427
453
 
454
+ # Now actually use it.
428
455
  if [ ! "$implementation" = "default" ] ; then
456
+ # Install if not installed
429
457
  if [ ! -d $MY_RUBY_HOME ] ; then
430
- warn "$implementation $version is not installed."
458
+ rvm-log-warn "$implementation $version is not installed."
431
459
  rvm-install-ruby $implementation $version $level
432
460
  fi
433
461
 
462
+ # Set as 'current'
434
463
  RUBY_VERSION="$($MY_RUBY_HOME/bin/ruby -v | sed 's/^\(.*\) (.*$/\1/')"
435
464
  export GEM_HOME MY_RUBY_HOME RUBY_VERSION
436
465
 
437
- # Setup ~/.rvm/current
438
- echo "PATH=$MY_RUBY_HOME/bin:$GEM_HOME/bin:\$PATH ; export PATH" > ~/.rvm/current
466
+ echo "PATH=$MY_RUBY_HOME/bin:$GEM_HOME/bin:$default_path ; export PATH" > $install_path/current
439
467
  for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do
440
468
  eval "export $variable"
441
469
  eval value=\$${variable}
442
- echo "${variable}='$value' ; export ${variable}" >> ~/.rvm/current
470
+ echo "${variable}='$value' ; export ${variable}" >> $install_path/current
443
471
  done
444
- else
445
- PATH=$original_path ; export PATH
446
472
  fi
447
473
 
448
- info "Switching to $implementation $version $patchlevel ..."
474
+ rvm-log-info "Switching to $implementation $version $patchlevel ..."
449
475
  if [ ! -z "$BASH_VERSION" ] ; then
450
476
  exec bash -l
451
477
  elif [ ! -z "$ZSH_VERSION" ] ; then
452
478
  exec zsh -l
453
479
  else
454
- fail "Your shell is not supported bash and zsh are currently supported."
480
+ rvm-log-fail "Your shell is not supported bash and zsh are currently supported."
455
481
  fi
482
+
456
483
  }
457
484
 
458
485
  function rvm-list {
486
+
459
487
  echo -e "\nruby:"
460
- ls -l ~/.rvm/ | awk '/ ruby-[1-2].*/ { print " - " $NF }'
488
+ ls -l $install_path/ | awk '/ ruby-[1-2].*/ { print " - " $NF }'
461
489
  echo
462
490
  echo "jruby:"
463
- ls -l ~/.rvm/ | awk '/jruby-.*/ { print " - " $NF }'
491
+ ls -l $install_path/ | awk '/jruby-.*/ { print " - " $NF }'
464
492
  echo
465
493
  echo "ree:"
466
- ls ~/.rvm/ | awk '/ruby-enterprise-.*/ { print " - " $NF }'
494
+ ls $install_path/ | awk '/ruby-enterprise-.*/ { print " - " $NF }'
467
495
  echo
496
+ echo "default:"
497
+ echo " - system (`$default_system_ruby -v`)"
498
+
499
+ }
500
+
501
+ function rvm-reset {
502
+
503
+ PATH="$default_path" ; export PATH
504
+ for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do
505
+ unset $variable
506
+ done
507
+ rm -f $install_path/default* $install_path/current
508
+ if [ ! -z "$BASH_VERSION" ] ; then
509
+ exec bash -l
510
+ elif [ ! -z "$ZSH_VERSION" ] ; then
511
+ exec zsh -l
512
+ else
513
+ rvm-log-fail "Your shell is not supported bash and zsh are currently supported."
514
+ fi
515
+
468
516
  }
469
517
 
470
518
  function rvm-gem-dir {
471
519
 
472
- case "${1-implementation}" in
520
+ implementation=${1-$implementation}
521
+ if [ "$implementation" = "" ] ; then implementation="current" ; fi
522
+
523
+ case "$implementation" in
473
524
  jruby) GEM_HOME="$HOME/.gem/jruby/1.8" ;;
474
525
  ree) GEM_HOME="$HOME/.gem/ruby-enterprise/1.8" ;;
475
526
  ruby)
476
- if [ "${2-version}" = "1.8" -o "${2-version}" = "1.8.6" ] ; then
527
+ if [ "${2-$version}" = "1.8" -o "${2-$version}" = "1.8.6" ] ; then
477
528
  GEM_HOME="$HOME/.gem/ruby/1.8"
478
529
 
479
- elif [ "${2-version}" = "1.9.2" ] ; then
530
+ elif [ "${2-$version}" = "1.9.2" ] ; then
480
531
  GEM_HOME="$HOME/.gem/ruby/1.9.2"
481
532
 
482
- elif [ "${2-version}" = "1.9" -o "${2-version}" = "1.9.1" ] ; then
533
+ elif [ "${2-$version}" = "1.9" -o "${2-$version}" = "1.9.1" ] ; then
483
534
  GEM_HOME="$HOME/.gem/ruby/1.9.1"
484
535
 
485
536
  else
486
- fail "Unknown Version: ${2-version}"
537
+ rvm-log-fail "Unknown Version: ${2-$version}"
487
538
  fi
488
539
  ;;
540
+ current)
541
+ GEM_HOME=$(ruby -r rubygems -e "puts Gem::default_path.compact.first")
542
+ ;;
543
+ system)
544
+ GEM_HOME=$default_system_gem_path
545
+ ;;
546
+ user)
547
+ GEM_HOME=$default_gem_path
548
+ ;;
489
549
  *)
490
- fail "Ruby implementation '$implementation' is not known."
550
+ rvm-log-fail "Ruby implementation '$implementation' is not known."
491
551
  esac
492
552
 
493
553
  if [ -d $GEM_HOME ] ; then
494
554
  echo $GEM_HOME && cd $GEM_HOME
495
555
  else
496
- fail "$implementation $version GEM directory does not exist."
556
+ rvm-log-fail "$implementation $version GEM directory does not exist."
497
557
  fi
498
558
 
499
559
  }
500
560
 
501
561
  function rvm-src-dir {
502
- case "$implementation" in
562
+ case "${1-$implementation}" in
503
563
 
504
564
  jruby)
505
- version="${version-1.3.1}"
506
- if [ "$version" = "1.2.0" -o "$version" = "1.3.1" ] ; then
565
+ version=${version-1.3.1}
566
+ if [ "${2-$version}" = "1.2.0" -o "${2-$version}" = "1.3.1" ] ; then
507
567
  src_dir="$source_path/$implementation-$version"
508
568
  else
509
- fail "Unknown jRuby version: $version"
569
+ rvm-log-fail "Unknown jRuby version: $version"
510
570
  fi
511
571
  ;;
512
572
 
513
573
  ree)
514
574
  version=${version-1.8.6}
515
- if [ "$version" = "1.8.6" ] ; then
516
- src_dir="$source_path/ruby-enterprise-$version-"${3-20090610}""
575
+ if [ "${2-$version}" = "1.8.6" -o "${2-$version}" = "1.8" ] ; then
576
+ src_dir="$source_path/ruby-enterprise-${2-$version}-"${3-20090610}""
517
577
  else
518
- fail "Unknown Ruby Enterprise Edition version: $version"
578
+ rvm-log-fail "Unknown Ruby Enterprise Edition version: ${2-$version}"
519
579
  fi
520
580
  ;;
521
581
 
522
582
  ruby)
523
- if [ "$version" = "1.8.7" ] ; then
583
+ if [ "${2-$version}" = "1.8.7" ] ; then
524
584
  src_dir="$source_path/ruby-1.8.7-p${patchlevel-174}"
525
585
 
526
- elif [ "${version%\.*}" = "1.8" ] ; then
586
+ elif [ "${2-$version}" = "1.8" -o "${2-$version}" = "1.8.6" ] ; then
527
587
  src_dir="$source_path/ruby-1.8.6-p${patchlevel-369}"
528
588
 
529
- elif [ "$version" = "1.9.2" ] ; then
589
+ elif [ "${2-$version}" = "1.9.2" ] ; then
530
590
  src_dir="$source_path/ruby-1.9.2-p${patchlevel-review1}"
531
591
 
532
- elif [ "${version%\.*}" = "1.9" ] ; then
592
+ elif [ "${2-$version}" = "1.9" -o "${2-$version}" = "1.9.1" ] ; then
533
593
  src_dir="$source_path/ruby-1.9.1-p${patchlevel-243}"
534
594
 
535
595
  else
536
- fail "Unknown ruby version: $version"
596
+ rvm-log-fail "unknown Ruby version: ${2-$version}"
537
597
  fi
538
598
  ;;
539
599
 
600
+ default)
601
+ rvm-log-warn "Invalid request, rvm cannot change to the default source directory."
602
+ ;;
603
+
540
604
  *)
541
- fail "Ruby implementation '$implementation' is not known."
605
+ rvm-log-fail "Ruby implementation '$implementation' is not known."
542
606
  return 1
543
607
  esac
544
608
 
545
609
  if [ -d $src_dir ] ; then
546
610
  cd $src_dir
547
611
  else
548
- fail "$implementation $version source directory does not exist."
612
+ rvm-log-fail "$implementation $version source directory does not exist."
549
613
  fi
550
614
 
551
615
  }
@@ -553,7 +617,14 @@ function rvm-src-dir {
553
617
  # clones from source implementation/version to current
554
618
  function rvm-gem-dup {
555
619
 
556
- gem_dir=$1 # TODO: check for and remove trailing /gems
620
+ if [ "$1" = "default" ] ; then
621
+ gem_dir="$default_gem_path"
622
+ elif [ "$1" = "system" ] ; then
623
+ gem_dir="$default_system_gem_path"
624
+ else
625
+ gem_dir=${1-$default_gem_path} # TODO: check for and remove trailing /gems
626
+ fi
627
+
557
628
  if [ ! -z "$gem_dir" ] ; then
558
629
  for gem_name_version in `ls $gem_dir/gems` ; do
559
630
  gem_name=${gem_name_version%-*}
@@ -565,7 +636,7 @@ function rvm-gem-dup {
565
636
  fi
566
637
  done
567
638
  else
568
- fail "Unknown $implementation version: $version"
639
+ rvm-log-fail "Unknown $implementation version: $version"
569
640
  fi
570
641
 
571
642
  }
@@ -578,15 +649,50 @@ function rvm {
578
649
  for variable in action implementation patchlevel version source_path install_path manager debug prefix_path ; do
579
650
  eval "unset $variable"
580
651
  done
652
+
581
653
  while [ $# -gt 0 ] ; do
582
654
  token="$1" ; shift
583
655
  case "$token" in
584
- install|uninstall|use|path|info|gemdir|setup|version|debug|srcdir|list)
585
- action=$token ;;
656
+ install|uninstall|use|path|info|setup|version|srcdir|list|reset|debug)
657
+ action=$token
658
+ ;;
659
+
586
660
  ruby|jruby|ree|default|all)
587
- implementation="$token" ;;
661
+ implementation="$token"
662
+ action="${action-use}"
663
+ ;;
664
+
665
+ gemdir)
666
+ action=$token
667
+ if [ "$1" = "system" ] ; then
668
+ implementation="system" ; shift
669
+ fi
670
+ if [ "$1" = "user" ] ; then
671
+ implementation="user" ; shift
672
+ fi
673
+
674
+ implementation="${implementation-current}"
675
+ ;;
676
+
677
+ gemdup)
678
+ action=$token
679
+ if [ -z "$1" ] ; then
680
+ implementaiton="default"
681
+ elif [ "$1" = "system" ] ; then
682
+ implementation=$1 ; shift
683
+ elif [ "$1" = "default" ] ; then
684
+ implementation=$1 ; shift
685
+ else
686
+ implementation=$1 ; shift
687
+ version=$2 ; shift
688
+ fi
689
+ ;;
690
+
588
691
  1.8|1.8.6|1.8.7|1.9|1.9.1|1.9.2|1.2.0|1.3.1)
589
- version="$token" ;;
692
+ version="$token"
693
+ action="${action-use}"
694
+ ;;
695
+
590
696
  -v|--version)
591
697
  if [ -z "$1" ] ; then
592
698
  action="version"
@@ -595,42 +701,76 @@ function rvm {
595
701
  fi
596
702
  shift
597
703
  ;;
704
+
598
705
  -l|--level) patchlevel="$1" ; shift ;;
599
706
  -p|--prefix) install_path="$1" ; shift ;;
600
707
  -s|--source) source_path="$1" ; shift ;; # Undocumented / untested "feature"
601
708
  -c|--configure) configure="$1" ; shift ;;
602
- -m|--manager) manager="$1" ; shift ;;
603
- -u|--gemdup) action="gemdup" ; gem_dir="$1" ; shift ;;
604
709
  -d|--debug) debug=1 ;;
605
710
  *) rvm-usage ; return 1
606
711
  esac
607
712
  done
608
-
713
+
714
+ curl=`which curl`
715
+ if [ $? -ne 0 ] ; then
716
+ rvm-log-fail "rvm expects that curl is available, which curl shows no curl :("
717
+ else
718
+ curl="$curl -O -L -s"
719
+ fi
720
+
609
721
  if [ -z "$implementation" -a -z "$version" ] ; then
610
722
  implementation="default"
611
723
  else
612
724
  implementation=${implementation-'ruby'}
613
725
  fi
614
- username=`whoami`
615
726
 
616
727
  # TODO: Sanitize user input, ensure that there is a / a the end...
617
- if [ "$username" = "root" ] ; then
618
- fail "root user support is not yet implemented."
728
+ if [ "`whoami`" = "root" ] ; then
729
+ rvm-log-fail "root user support is not yet implemented."
619
730
  #prefix_path=${prefix-/usr/local/}
620
731
  else
621
732
  prefix_path=${prefix-$HOME/.}
622
733
  fi
623
- source_path="${source_path-${prefix_path}rvm/src}"
734
+ source_path="${source_path-"${prefix_path}rvm/src"}"
624
735
  install_path="${prefix_path}rvm"
625
736
 
626
- mkdir -p ~/.rvm/ $source_path $install_path
737
+ mkdir -p $source_path $install_path/bin
627
738
 
628
- if [ -f ~/.rvm/original_path ] ; then
629
- original_path=`cat ~/.rvm/original_path`
739
+ if [ ! -f $install_path/default ] ; then
740
+ for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME PATH ; do
741
+ eval "export $variable"
742
+ eval value=\$${variable}
743
+ echo "${variable}='$value' ; export ${variable}" >> $install_path/default
744
+ done
630
745
  fi
631
- if [ -z "$original_path" ] ; then
632
- echo $PATH > $install_path/.original_path
633
- original_path=$PATH
746
+
747
+ if [ -s $install_path/default_path ] ; then
748
+ default_path=`cat $install_path/default_path`
749
+ else
750
+ echo $PATH > $install_path/default_path
751
+ default_path=$PATH
752
+ fi
753
+
754
+ # default (user) gem path
755
+ if [ -s $install_path/default_gem_path ] ; then
756
+ default_gem_path=`cat $install_path/default_gem_path`
757
+ else
758
+ ruby -r rubygems -e "puts Gem::default_path.compact.first" > $install_path/default_gem_path
759
+ fi
760
+
761
+ # system gem path
762
+ if [ -s $install_path/default_system_gem_path ] ; then
763
+ default_system_gem_path=`cat $install_path/default_system_gem_path`
764
+ else
765
+ ruby -r rubygems -e "puts Gem::default_path.compact[1] || Gem::default_path.compact.first" > $install_path/default_system_gem_path
766
+ fi
767
+
768
+ # system ruby version
769
+ if [ -s $install_path/default_system_ruby ] ; then
770
+ default_system_ruby=`cat $install_path/default_system_ruby`
771
+ else
772
+ default_system_ruby=`which ruby`
773
+ echo $default_system_ruby > $install_path/default_system_ruby
634
774
  fi
635
775
 
636
776
  if [ "$debug" = "1" ] ; then set -x ; fi
@@ -659,25 +799,29 @@ function rvm {
659
799
  gemdup) rvm-gem-dup $implementation $version $patchlevel ;;
660
800
  info) rvm-info $implementation $version $patchlevel ;;
661
801
  version) rvm-version ;;
802
+ reset) rvm-reset ;;
662
803
  debug)
663
804
  rvm-version
664
- info "GEM_HOME: $GEM_HOME\nMY_RUBY_HOME: $MY_RUBY_HOME"
665
- info "ruby: `which ruby`\ngem: `which gem`\nirb: `which irb`"
666
- info "PATH:$(echo $PATH | awk -F":" '{print $1":"$2":"$3":"$4":"%5}')"
667
- info "\n.bash_profile: \n$(cat ~/.bash_profile | tail -n 5)\n"
668
- info "\n.rvm/current: \n$(cat ~/.rvm/current)\n"
805
+ rvm-info
806
+ rvm-log-info "PATH:$(echo $PATH | awk -F":" '{print $1":"$2":"$3":"$4":"$5}')"
807
+ for file in .bash_profile .zshrc ; do
808
+ if [ -s $file ] ; then
809
+ rvm-log-info "~/$file: \n$(cat ~/$file| tail -n 5)\n"
810
+ fi
811
+ done
812
+ rvm-log-info "$install_path/current: \n$(cat $install_path/current)\n"
669
813
  return 0
670
814
  ;;
671
815
  *)
672
816
  if [ ! -z "$action" ] ; then
673
- fail "unknown action '$action'"
817
+ rvm-log-fail "unknown action '$action'"
674
818
  else
675
819
  rvm-usage
676
820
  fi
677
821
  return 1
678
822
  esac
679
823
 
680
- set +x
824
+ if [ "$debug" = "1" ] ; then set +x ; fi
681
825
 
682
826
  }
683
827
 
@@ -2,36 +2,112 @@
2
2
 
3
3
  user=`whoami`
4
4
  if [ "$user" = "root" ] ; then
5
- echo -e "\e[0;31m <e> \e[0mroot user support is not yet implemented."
5
+ echo -e "\e[0;31m <e> \e[0mroot user support is not yet implemented.\e[0m"
6
6
  exit 1
7
7
  fi
8
8
 
9
- mkdir -p ~/.rvm/src ~/.rvm/bin
9
+ info="\n\e[0;32m<i>\e[0m"
10
+ question="\n\e[0;32m<?>\e[0m"
10
11
 
12
+ echo -e "Installing rvm source to ~/.rvm/bin/rvm..."
13
+ mkdir -p ~/.rvm/src ~/.rvm/bin
11
14
  cp $(pwd)/bash/rvm ~/.rvm/bin/
12
15
 
13
- touch ~/.profile
14
- if [ -z "`grep '\.rvm/bin/rvm' ~/.profile`" ] ; then
15
- echo "Adding 'source ~/.rvm/bin/rvm' to your ~/.profile."
16
- echo "source ~/.rvm/bin/rvm" >> ~/.profile
17
- fi
16
+ # State what is required to use rvm
17
+ echo -e "\n\e[0;32mrvm\e[0m is a shell script that allows a user to manage multiple ruby versions in their own account."
18
+ echo -e "$info In order to use rvm two items must occur in your shell's load paths:"
19
+ echo -e "\n\e[0;32m (a)\e[0m if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi"
20
+ echo -e "\e[0;32m (b)\e[0m if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi"
18
21
 
19
- if [ -z "`grep '\.rvm/current' ~/.profile`" ] ; then
20
- echo "Adding 'source ~/.rvm/current' ~/.profile."
21
- echo "if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi" >> ~/.profile
22
- fi
22
+ while : ; do
23
+ echo -n -e "$question Do you want this (s)cript to set this up for you, or do it (m)anually yourself ('s' or 'm')? "
24
+ read response
25
+ if [ "${response:0:1}" = "s" ] ; then
26
+ echo 'w00t!'
27
+ break
28
+ elif [ "${response:0:1}" = "m" ] ; then
29
+ echo -e "$info Please make sure that both lines (a) and (b) are in place, with (a) sourced *first*."
30
+ break
31
+ fi
32
+ done
23
33
 
24
- touch ~/.bash_profile
25
- if [ -z "`grep '\.profile' ~/.bash_profile`" ] ; then
26
- echo "Adding 'source ~/.profile' to the end of ~/.bash_profile."
27
- echo "if [ -f ~/.profile ] ; then source ~/.profile ; fi" >> ~/.bash_profile
34
+ if [ "${response:0:1}" = "s" ] ; then
35
+
36
+ while : ; do
37
+ echo -n -e "$question Do you use b(a)sh or (z)sh or b(o)th for your shell (the default on most *nix systems is bash, press control + C to cancel the installation)\n(a/z/o)? "
38
+ read response
39
+ if [ "${response:0:1}" = "a" ] ; then
40
+ user_shell="bash"
41
+ break
42
+ elif [ "${response:0:1}" = "z" ] ; then
43
+ user_shell="zsh"
44
+ break
45
+ elif [ "${response:0:1}" = "o" ] ; then
46
+ user_shell="both"
47
+ break
48
+ fi
49
+ done
50
+
51
+ touch ~/.profile
52
+
53
+ if [ "$user_shell" = "bash" -o "$user_shell" = "both" ] ; then
54
+
55
+ touch ~/.bash_profile
56
+ if [ -z "`grep '\.rvm/bin/rvm' ~/.bash_profile`" ] ; then
57
+ echo "Adding 'if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi' to your ~/.bash_profile."
58
+ echo "if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi" >> ~/.bash_profile
59
+ fi
60
+
61
+ if [ -z "`grep '\.rvm/current' ~/.bash_profile`" ] ; then
62
+ echo "Adding 'if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi' ~/.bash_profile."
63
+ echo "if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi" >> ~/.bash_profile
64
+ fi
65
+
66
+ elif [ "$user_shell" = "zsh" -o "$user_shell" = "both" ] ; then
67
+
68
+ touch ~/.zshrc
69
+ if [ -z "`grep '\.rvm/bin/rvm' ~/.zshrc`" ] ; then
70
+ echo "Adding 'if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi' to your ~/.zshrc."
71
+ echo "if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi" >> ~/.zshrc
72
+ fi
73
+
74
+ if [ -z "`grep '\.rvm/current' ~/.zshrc`" ] ; then
75
+ echo "Adding 'if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi' ~/.zshrc."
76
+ echo "if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi" >> ~/.zshrc
77
+ fi
78
+
79
+ else
80
+
81
+ echo -e "\n\e[0;31m<e> An error has occurred, we were expecting either bash or zsh however we encountered $user_shell \e[0m"
82
+ return 1
83
+
84
+ fi
28
85
  fi
29
86
 
30
- touch ~/.zprofile
31
- if [ -z "`grep '\.profile' ~/.zprofile`" ] ; then
32
- echo "Adding 'source ~/.profile' to the end of ~/.zprofile."
33
- echo "if [ -f ~/.profile ] ; then source ~/.profile ; fi" >> ~/.zprofile
87
+ system=`uname`
88
+ if [ "$system" = "Linux" ] ; then
89
+ echo -e "For jRuby (if you wish to use it) you will need:"
90
+ if [ ! -z "`which apt-get`" ] ; then
91
+ echo -e " sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk "
92
+ elif [ ! -z "`which emerge`" ] ; then
93
+ echo -e "emerge dev-java/sun-jdk dev-java/sun-jre-bin"
94
+ elif [ ! -z "`which pacman`" ] ; then
95
+ echo -e "pacman -Sy jdk jre"
96
+ elif [ ! -z "`which yum`" ] ; then
97
+ echo -e "yum install -y rpm-build gcc gcc-c++ redhat-rpm-config ; then download and rpmbuild and install the sdk, Have fun..."
98
+ else
99
+ echo -e "The SUN java runtime environment and development kit."
100
+ fi
101
+ #elif [ "$sytem" = "Darwin" ] ; then
102
+ #else
103
+
34
104
  fi
35
105
 
36
- echo -e "\n\e[0;32mOpen a new shell and enjoy rvm: rvm usage\e[0m\n"
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>"
107
+ echo -e " For example: ~/.ruby-1.9.1p243 -e 'puts \"hello world\"' #=> hello world"
108
+ echo -e "$info Contact wayneeseguin on irc.freenod.net in #rvm for any questions / feedback."
109
+ echo -e " I truly hope that you find rvm helpful! Thank you very much for using rvm. \n"
110
+ echo -e " ~ Wayne"
111
+
112
+ echo -e "$info To start using rvm see: \e[0;32m rvm usage\e[0m, Now close this login shell and open a new one."
37
113
 
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  # Hot potato!!! Bash it!
4
- exec "bash -c 'cd #{File.dirname(File.dirname(__FILE__))} && ./bash/rvm-install #{ARGV.join(' ')} ; source ~/.bash_profile'"
4
+ exec "bash -l -c 'cd #{File.dirname(File.dirname(__FILE__))} && ./bash/rvm-install #{ARGV.join(' ')} && source ~/.rvm/bin/rvm'"
5
5
 
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.9
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wayne E. Seguin
@@ -30,7 +30,6 @@ files:
30
30
  - lib/rvm.rb
31
31
  has_rdoc: false
32
32
  homepage: http://github.com/wayneeseguin/rvm
33
- licenses:
34
33
  post_install_message:
35
34
  rdoc_options:
36
35
  - --inline-source
@@ -52,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
51
  requirements: []
53
52
 
54
53
  rubyforge_project: dynamicreports
55
- rubygems_version: 1.3.5
54
+ rubygems_version: 1.2.0
56
55
  signing_key:
57
56
  specification_version: 3
58
57
  summary: Ruby Version Manager (rvm)