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 +348 -319
- data/bash/rvm-install +15 -17
- data/bash/rvm-update +5 -3
- data/bash/rvmrc.sample +30 -0
- data/rvm.gemspec +3 -2
- metadata +3 -2
data/bash/rvm
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
#!/bin/bash
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
127
|
-
ruby: "${MY_RUBY_HOME
|
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
|
-
|
141
|
-
case "$
|
142
|
-
1.9|1.9.1)
|
143
|
-
1.9.2)
|
144
|
-
1.8|1.8.6)
|
145
|
-
1.8.7)
|
146
|
-
*) rvm-log-fail "Ruby version '$
|
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
|
-
|
150
|
-
|
151
|
-
|
152
|
-
rvm-log-info "Installing Ruby from source to: $
|
153
|
-
mkdir -p $
|
154
|
-
|
155
|
-
pushd $
|
156
|
-
if [ -d $
|
157
|
-
cd $
|
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 "$
|
160
|
-
rvm-log-info "\tDownloading $
|
161
|
-
|
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 $
|
164
|
-
|
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
|
-
|
168
|
-
|
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 $
|
171
|
-
make > $
|
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 $
|
174
|
-
make install > $
|
175
|
-
chmod +x $
|
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
|
-
|
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
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
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 $
|
188
|
-
|
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
|
192
|
-
|
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 $
|
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
|
-
$
|
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
|
-
|
215
|
+
if [ -z "$RUBYOPT" ] ; then
|
216
|
+
ruby_options=$RUBYOPT ; unset RUBYOPT
|
217
|
+
fi
|
205
218
|
|
206
|
-
case "$
|
219
|
+
case "$rvm_implementation" in
|
207
220
|
|
208
221
|
ree)
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
rvm-log-info "Installing Ruby Enterprise Edition from source to: $
|
214
|
-
pushd $
|
215
|
-
if [ -d $
|
216
|
-
cd $
|
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 "$
|
219
|
-
rvm-log-info "\tDownloading $
|
220
|
-
|
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 $
|
223
|
-
|
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 $
|
227
|
-
mkdir -p $
|
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
|
-
|
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
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
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 $
|
240
|
-
|
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
|
244
|
-
|
245
|
-
|
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
|
-
$
|
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
|
-
|
256
|
-
unset
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
rvm-log-info "Installing jRuby to: $
|
262
|
-
mkdir -p $
|
263
|
-
pushd $
|
264
|
-
if [ -d $
|
265
|
-
cd $
|
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 "$
|
268
|
-
rvm-log-info "\tDownloading $
|
269
|
-
|
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 $
|
272
|
-
|
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 $
|
276
|
-
mkdir -p $
|
277
|
-
rsync -ag $
|
278
|
-
cd $
|
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 $
|
298
|
+
chmod +x $rvm_install_path/$rvm_package_name/bin/*
|
281
299
|
for binary in jruby jgem jirb ; do
|
282
|
-
ln -fs $
|
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 $
|
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
|
-
$
|
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 ${
|
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 '$
|
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
|
-
|
313
|
-
case "$
|
330
|
+
rvm_implementation="${1:-$rvm_implementation}"
|
331
|
+
case "$rvm_implementation" in
|
314
332
|
|
315
333
|
jruby)
|
316
|
-
|
317
|
-
if [ "$
|
318
|
-
|
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: $
|
338
|
+
rvm-log-fail "Unknown jRuby version: $rvm_version"
|
321
339
|
fi
|
322
340
|
;;
|
323
341
|
|
324
342
|
ree)
|
325
|
-
|
326
|
-
if [ "$
|
327
|
-
|
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: $
|
347
|
+
rvm-log-fail "Unknown Ruby Enterprise Edition version: $rvm_version"
|
330
348
|
fi
|
331
349
|
;;
|
332
350
|
|
333
351
|
ruby)
|
334
|
-
if [ "$
|
335
|
-
|
352
|
+
if [ "$rvm_version" = "1.8.7" ] ; then
|
353
|
+
rvm_package_name="ruby-1.8.7-p${rvm_patchlevel:-174}"
|
336
354
|
|
337
|
-
elif [ "$
|
338
|
-
|
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 [ "$
|
341
|
-
|
358
|
+
elif [ "$rvm_version" = "1.9.2" ] ; then
|
359
|
+
rvm_package_name="ruby-1.9.2-p${rvm_patchlevel:-review1}"
|
342
360
|
|
343
|
-
elif [ "$
|
344
|
-
|
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: $
|
365
|
+
rvm-log-fail "Unknown ruby version: $rvm_version"
|
348
366
|
fi
|
349
367
|
;;
|
350
368
|
|
351
369
|
*)
|
352
|
-
rvm-log-fail "Ruby implementation '$
|
370
|
+
rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
|
353
371
|
|
354
372
|
esac
|
355
373
|
|
356
|
-
if [ ! -z "$
|
357
|
-
for path in $
|
358
|
-
if [ -d $path/$
|
359
|
-
rvm-log-info "Removing $path/$
|
360
|
-
rm -rf $path/$
|
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 '$
|
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
|
-
|
372
|
-
case "$
|
389
|
+
rvm_implementation="${1:-$rvm_implementation}"
|
390
|
+
case "$rvm_implementation" in
|
373
391
|
|
374
392
|
default)
|
375
|
-
rm -f $
|
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
|
-
|
383
|
-
if [ "$
|
384
|
-
MY_RUBY_HOME="$
|
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: $
|
407
|
+
rvm-log-fail "Unknown jRuby version: $rvm_version"
|
390
408
|
fi
|
391
409
|
;;
|
392
410
|
|
393
411
|
ree)
|
394
|
-
|
395
|
-
if [ "$
|
396
|
-
|
397
|
-
MY_RUBY_HOME="$
|
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: $
|
418
|
+
rvm-log-fail "Unknown Ruby Enterprise Edition version: $rvm_version"
|
401
419
|
fi
|
402
420
|
;;
|
403
421
|
|
404
422
|
ruby)
|
405
|
-
if [ "$
|
406
|
-
level="${
|
407
|
-
MY_RUBY_HOME="$
|
408
|
-
GEM_HOME="$HOME/.gem/ruby/1.8"
|
409
|
-
|
410
|
-
elif [ "$
|
411
|
-
level="${
|
412
|
-
MY_RUBY_HOME="$
|
413
|
-
GEM_HOME="$HOME/.gem/ruby/1.8"
|
414
|
-
|
415
|
-
elif [ "$
|
416
|
-
level="${
|
417
|
-
MY_RUBY_HOME="$
|
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 [ "$
|
421
|
-
level="${
|
422
|
-
MY_RUBY_HOME="$
|
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: $
|
444
|
+
rvm-log-fail "Unknown ruby version: $rvm_version"
|
427
445
|
fi
|
428
446
|
;;
|
429
447
|
|
430
448
|
*)
|
431
|
-
rvm-log-fail "Ruby implementation '$
|
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 [ ! "$
|
454
|
+
if [ ! "$rvm_implementation" = "default" ] ; then
|
437
455
|
# Install if not installed
|
438
456
|
if [ ! -d $MY_RUBY_HOME ] ; then
|
439
|
-
rvm-log-warn "$
|
440
|
-
rvm-install-ruby $
|
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" > $
|
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}" >> $
|
469
|
+
echo "${variable}='$value' ; export ${variable}" >> $rvm_install_path/current
|
452
470
|
done
|
453
471
|
fi
|
454
472
|
|
455
|
-
rvm-log-info "Switching to $
|
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
|
-
|
468
|
-
|
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 $
|
471
|
-
ln -fs $
|
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 $
|
481
|
-
echo
|
482
|
-
echo "
|
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 $
|
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
|
-
|
513
|
-
if [ "$
|
525
|
+
rvm_implementation=${1:-$rvm_implementation}
|
526
|
+
if [ -z "$rvm_implementation" ] ; then rvm_implementation="current" ; fi
|
514
527
|
|
515
|
-
case "$
|
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
|
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
|
535
|
+
elif [ "${2:-$rvm_version}" = "1.9.2" ] ; then
|
523
536
|
GEM_HOME="$HOME/.gem/ruby/1.9.2"
|
524
537
|
|
525
|
-
elif [ "${2
|
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
|
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=$
|
552
|
+
GEM_HOME=$default_user_gem_path
|
540
553
|
;;
|
541
554
|
*)
|
542
|
-
rvm-log-fail "Ruby implementation '$
|
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 "$
|
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
|
567
|
+
case "${1:-$rvm_implementation}" in
|
555
568
|
|
556
569
|
jruby)
|
557
|
-
|
558
|
-
if [ "${2
|
559
|
-
src_dir="$
|
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: $
|
574
|
+
rvm-log-fail "Unknown jRuby version: $rvm_version"
|
562
575
|
fi
|
563
576
|
;;
|
564
577
|
|
565
578
|
ree)
|
566
|
-
|
567
|
-
if [ "${2
|
568
|
-
src_dir="$
|
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
|
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
|
576
|
-
src_dir="$
|
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
|
579
|
-
src_dir="$
|
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
|
582
|
-
src_dir="$
|
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
|
585
|
-
src_dir="$
|
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
|
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 '$
|
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 "$
|
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="$
|
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
|
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 $
|
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 $
|
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
|
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
|
-
|
647
|
-
case "$
|
648
|
-
install|uninstall|use|path|info|setup|version|srcdir|list|symlinks|reset|debug)
|
649
|
-
|
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
|
-
|
654
|
-
|
669
|
+
rvm_implementation="$rvm_token"
|
670
|
+
rvm_action="${rvm_action:-use}"
|
655
671
|
;;
|
656
672
|
|
657
673
|
gemdir)
|
658
|
-
|
674
|
+
rvm_action=$rvm_token
|
659
675
|
if [ "$1" = "system" ] ; then
|
660
|
-
|
676
|
+
rvm_implementation="system" ; shift
|
661
677
|
fi
|
662
|
-
if [ "$1" = "user" ] ; then
|
663
|
-
|
678
|
+
if [ "$1" = "user" ] ; then
|
679
|
+
rvm_implementation="user" ; shift
|
664
680
|
fi
|
665
681
|
|
666
|
-
|
682
|
+
rvm_implementation="${rvm_implementation:-current}"
|
667
683
|
;;
|
668
684
|
|
669
685
|
gemdup)
|
670
|
-
|
686
|
+
rvm_action=$rvm_token
|
671
687
|
if [ -z "$1" ] ; then
|
672
|
-
|
688
|
+
rvm_implementation="default"
|
673
689
|
elif [ "$1" = "system" ] ; then
|
674
|
-
|
690
|
+
rvm_implementation=$1 ; shift
|
675
691
|
elif [ "$1" = "default" ] ; then
|
676
|
-
|
692
|
+
rvm_implementation=$1 ; shift
|
677
693
|
else
|
678
|
-
|
679
|
-
|
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
|
-
|
685
|
-
|
700
|
+
rvm_version="$rvm_token"
|
701
|
+
rvm_action="${rvm_action:-use}"
|
686
702
|
;;
|
687
703
|
|
688
|
-
-v|--version)
|
689
|
-
if [ -z "$1" ] ; then
|
690
|
-
|
691
|
-
else
|
692
|
-
|
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)
|
698
|
-
-p|--prefix)
|
699
|
-
-
|
700
|
-
-
|
701
|
-
-
|
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 [ "$
|
707
|
-
|
708
|
-
|
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
|
-
|
731
|
+
rvm_curl="$rvm_curl -O -L -s"
|
713
732
|
fi
|
714
733
|
|
715
|
-
if [ -z "$
|
716
|
-
|
734
|
+
if [ -z "$rvm_implementation" -a -z "$rvm_version" ] ; then
|
735
|
+
rvm_implementation="default"
|
717
736
|
else
|
718
|
-
|
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
|
-
#
|
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
|
-
|
752
|
+
rvm_install_path="${rvm_prefix_path}/rvm"
|
727
753
|
fi
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
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
|
-
|
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}" >> $
|
767
|
+
echo "${variable}='$value' ; export ${variable}" >> $rvm_install_path/default
|
738
768
|
done
|
739
769
|
fi
|
740
770
|
|
741
|
-
if [ -s $
|
742
|
-
default_path=`cat $
|
771
|
+
if [ -s $rvm_install_path/default_path ] ; then
|
772
|
+
default_path=`cat $rvm_install_path/default_path`
|
743
773
|
else
|
744
|
-
echo $PATH > $
|
774
|
+
echo $PATH > $rvm_install_path/default_path
|
745
775
|
default_path=$PATH
|
746
776
|
fi
|
747
777
|
|
748
|
-
|
749
|
-
|
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" > $
|
781
|
+
ruby -r rubygems -e "puts Gem::default_path.compact.first" > $rvm_install_path/default_user_gem_path
|
753
782
|
fi
|
754
783
|
|
755
|
-
|
756
|
-
|
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" > $
|
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
|
-
|
763
|
-
|
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 > $
|
794
|
+
echo $default_system_ruby > $rvm_install_path/default_system_ruby
|
768
795
|
fi
|
769
796
|
|
770
|
-
case "$
|
771
|
-
install)
|
772
|
-
if [ "$
|
773
|
-
for
|
774
|
-
if [ "$
|
775
|
-
for
|
776
|
-
rvm-install-ruby $
|
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
|
805
|
+
unset rvm_version
|
779
806
|
else
|
780
|
-
rvm-install-ruby $
|
807
|
+
rvm-install-ruby $rvm_implementation $rvm_version
|
781
808
|
fi
|
782
809
|
done
|
783
810
|
else
|
784
|
-
rvm-install-ruby $
|
811
|
+
rvm-install-ruby $rvm_implementation $rvm_version $rvm_patchlevel
|
785
812
|
fi
|
786
813
|
;;
|
787
|
-
uninstall) rvm-uninstall $
|
788
|
-
use) rvm-use $
|
789
|
-
list) rvm-list
|
790
|
-
gemdir) rvm-gem-dir $
|
791
|
-
srcdir) rvm-src-dir $
|
792
|
-
gemdup) rvm-gem-dup $
|
793
|
-
info) rvm-info $
|
794
|
-
symlinks) rvm-symlinks
|
795
|
-
version) rvm-version
|
796
|
-
reset) rvm-reset
|
797
|
-
|
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 "$
|
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 "$
|
811
|
-
rvm-log-fail "unknown 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 [ "$
|
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
|
-
|
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
|
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
|
-
|
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
|
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.
|
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
|
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
|
-
|
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.
|
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-
|
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.
|
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-
|
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
|