rvm 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/binscripts/rvm +13 -15
- data/binscripts/rvm-prompt +18 -14
- data/binscripts/rvm-shell +2 -1
- data/contrib/gemset_snapshot +16 -5
- data/contrib/install-system-wide +73 -9
- data/install +2 -1
- data/lib/VERSION.yml +1 -1
- data/lib/rvm/environment/tools.rb +1 -1
- data/rvm.gemspec +2 -2
- data/scripts/cli +32 -17
- data/scripts/completion +6 -5
- data/scripts/disk-usage +3 -2
- data/scripts/environment-convertor +13 -7
- data/scripts/gemsets +20 -5
- data/scripts/help +4 -4
- data/scripts/info +4 -1
- data/scripts/install +2 -1
- data/scripts/list +153 -51
- data/scripts/log +2 -2
- data/scripts/manage +679 -224
- data/scripts/migrate +48 -8
- data/scripts/override_gem +8 -5
- data/scripts/package +11 -8
- data/scripts/patches +24 -6
- data/scripts/repair +53 -13
- data/scripts/rvm +2 -1
- data/scripts/rvm-install +2 -1
- data/scripts/selector +106 -73
- data/scripts/set +10 -6
- data/scripts/snapshot +3 -3
- data/scripts/update +2 -1
- data/scripts/upgrade +27 -6
- data/scripts/utility +222 -71
- data/scripts/wrapper +64 -23
- metadata +4 -4
data/scripts/log
CHANGED
@@ -16,8 +16,8 @@ if [[ $rvm_pretty_print -eq 0 ]] ; then
|
|
16
16
|
fi
|
17
17
|
|
18
18
|
case "$level" in
|
19
|
-
debug|info|warn) printf "$message\n"
|
20
|
-
error|fail) printf "$message\n" >&2
|
19
|
+
debug|info|warn) printf "$message\n" ;;
|
20
|
+
error|fail) printf "$message\n" >&2 ;;
|
21
21
|
*) printf "$message"
|
22
22
|
esac
|
23
23
|
else
|
data/scripts/manage
CHANGED
@@ -15,46 +15,68 @@ __rvm_check_for_clang() {
|
|
15
15
|
|
16
16
|
# Checks for bison, returns zero iff it is found
|
17
17
|
__rvm_check_for_bison() {
|
18
|
+
local result
|
19
|
+
|
18
20
|
if [[ ${rvm_head_flag:-0} -gt 0 ]]; then
|
19
|
-
|
20
|
-
|
21
|
-
|
21
|
+
command -v bison > /dev/null
|
22
|
+
result=$?
|
23
|
+
if [[ $? -gt 0 ]] ; then
|
24
|
+
"$rvm_scripts_path/log" "fail" \
|
25
|
+
"\nbison is not available in your path. \nPlease ensure bison is installed before compiling from head.\n"
|
22
26
|
fi
|
23
27
|
fi
|
28
|
+
|
29
|
+
return $result
|
24
30
|
}
|
25
31
|
|
26
32
|
# Emits a number of patches to STDOUT, each on a new name
|
27
33
|
# Expands patchsets etc.
|
28
34
|
__rvm_current_patch_names() {
|
29
35
|
# TODO: Lookup default patches on rvm_ruby_string heirarchy.
|
30
|
-
local separator
|
31
|
-
|
36
|
+
local separator patches level name
|
37
|
+
|
38
|
+
separator="%"
|
39
|
+
patches="${rvm_patch_names:-""} default"
|
32
40
|
|
33
41
|
for patch_name in $(echo ${patches//,/ }); do
|
34
|
-
|
35
|
-
|
42
|
+
|
43
|
+
level=1
|
44
|
+
name="$patch_name"
|
45
|
+
|
36
46
|
if echo "$name" | grep -q "$separator"; then
|
37
47
|
level="${name/*${separator}/}"
|
38
48
|
name="${name//${separator}*/}"
|
39
49
|
fi
|
50
|
+
|
40
51
|
local expanded_name="$(__rvm_expand_patch_name "$name")"
|
52
|
+
|
41
53
|
echo "${expanded_name}${separator}${level}"
|
54
|
+
|
42
55
|
done
|
56
|
+
|
57
|
+
return 0
|
43
58
|
}
|
44
59
|
|
45
60
|
__rvm_apply_patches() {
|
46
|
-
|
47
|
-
local patch_level_separator
|
48
|
-
|
49
|
-
|
50
|
-
|
61
|
+
|
62
|
+
local patches patch_name result patch_level_separator patch_fuzziness patch_level source_directory full_patch_path
|
63
|
+
|
64
|
+
result=0
|
65
|
+
patch_level_separator="%"
|
66
|
+
patch_fuzziness="25"
|
67
|
+
patch_level=1
|
68
|
+
source_directory="${1:-"$rvm_ruby_src_path"}"
|
69
|
+
|
51
70
|
(
|
52
71
|
builtin cd "$source_directory"
|
53
72
|
|
54
|
-
patches=
|
55
|
-
|
73
|
+
patches=($(__rvm_current_patch_names))
|
74
|
+
|
75
|
+
for patch_name in "${patches[@]}" ; do
|
76
|
+
|
56
77
|
# If set, extract the patch level from the patch name.
|
57
78
|
patch_level=1
|
79
|
+
|
58
80
|
if echo "$patch_name" | \grep -q "$patch_level_separator"; then
|
59
81
|
patch_level=${patch_name//*${patch_level_separator}/}
|
60
82
|
patch_name="${patch_name//${patch_level_separator}*/}"
|
@@ -66,112 +88,164 @@ __rvm_apply_patches() {
|
|
66
88
|
if [[ -n "${full_patch_path:-""}" ]]; then
|
67
89
|
|
68
90
|
if [[ -f "$full_patch_path" ]] ; then
|
91
|
+
|
69
92
|
__rvm_run "patch.apply.${patch_name/*\/}" "patch -F$patch_fuzziness -p$patch_level -f <\"$full_patch_path\"" "Applying patch '$patch_name' (located at $full_patch_path)"
|
70
|
-
|
71
|
-
[[ $? -gt 0 ]] &&
|
93
|
+
|
94
|
+
[[ $? -gt 0 ]] && result=1 # Detect failed patches
|
72
95
|
fi
|
96
|
+
|
73
97
|
else
|
74
|
-
"$rvm_scripts_path/log" "warn"
|
75
|
-
|
98
|
+
"$rvm_scripts_path/log" "warn" \
|
99
|
+
"Patch '$patch_name' not found."
|
100
|
+
result=1
|
76
101
|
fi
|
77
102
|
done
|
78
103
|
)
|
79
|
-
|
80
|
-
return $
|
104
|
+
|
105
|
+
return $result
|
81
106
|
}
|
82
107
|
|
83
108
|
__rvm_install_source() {
|
109
|
+
|
110
|
+
local directory configure_parameters db_configure_flags
|
111
|
+
|
84
112
|
[[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] && __rvm_select
|
85
113
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
fi
|
114
|
+
case ${rvm_ruby_string:-""} in
|
115
|
+
*-head) __rvm_ensure_has_18_compat_ruby || return 1 ;;
|
116
|
+
esac
|
90
117
|
|
91
118
|
"$rvm_scripts_path/log" "info" "\nInstalling Ruby from source to: $rvm_ruby_home, this may take a while depending on your cpu(s)...\n"
|
92
119
|
|
93
120
|
builtin cd "$rvm_src_path"
|
94
121
|
|
95
122
|
if [[ ${rvm_force_flag:-0} -eq 1 ]] ; then
|
123
|
+
|
96
124
|
for directory in "$rvm_ruby_home" "$rvm_ruby_src_path" ; do
|
97
|
-
|
125
|
+
|
126
|
+
if [[ -d "$directory" ]] ; then
|
127
|
+
rm -rf "$directory"
|
128
|
+
fi
|
129
|
+
|
98
130
|
done
|
99
131
|
fi
|
100
132
|
|
101
133
|
result=0
|
134
|
+
|
102
135
|
__rvm_fetch_ruby
|
103
|
-
result=$?
|
104
|
-
|
136
|
+
result=$?
|
137
|
+
|
138
|
+
if [[ "$result" -gt 0 ]] ; then
|
139
|
+
"$rvm_scripts_path/log" "error" \
|
140
|
+
"There has been an error fetching the ruby interpreter. Aborting the installation."
|
141
|
+
return $result
|
105
142
|
fi
|
106
143
|
|
107
144
|
builtin cd "$rvm_ruby_src_path"
|
108
145
|
|
109
146
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
110
|
-
"$rvm_scripts_path/log" "error"
|
147
|
+
"$rvm_scripts_path/log" "error" \
|
148
|
+
"Source directory is missing. Did the download or extraction fail? Aborting the installation."
|
149
|
+
return $result
|
111
150
|
fi
|
112
151
|
|
113
152
|
if [[ -d "${rvm_path}/usr" ]] ; then
|
114
153
|
export PATH="${rvm_path}/usr/bin:${PATH}"
|
154
|
+
|
115
155
|
builtin hash -r
|
116
156
|
fi
|
117
157
|
|
118
158
|
__rvm_apply_patches
|
119
159
|
result="$?"
|
160
|
+
|
120
161
|
if [[ "$result" -gt 0 ]]; then
|
121
|
-
"$rvm_scripts_path/log" "fail"
|
162
|
+
"$rvm_scripts_path/log" "fail" \
|
163
|
+
"There has been an error applying the specified patches. Aborting the installation."
|
122
164
|
return $result
|
123
165
|
fi
|
124
166
|
|
125
|
-
if [[ -z "${rvm_ruby_configure:-""}"
|
167
|
+
if [[ -z "${rvm_ruby_configure:-""}" && ! -s "$rvm_ruby_src_path/configure" ]] ; then
|
168
|
+
|
126
169
|
if command -v autoconf > /dev/null ; then
|
170
|
+
|
127
171
|
__rvm_run "autoconf" "autoconf" "Running autoconf"
|
172
|
+
|
128
173
|
else
|
129
|
-
|
174
|
+
"$rvm_scripts_path/log" "fail" \
|
175
|
+
"rvm requires autoconf to install the selected ruby interpreter however autoconf was not found in the PATH."
|
176
|
+
return 1
|
130
177
|
fi
|
131
178
|
fi
|
132
179
|
|
133
180
|
if [[ -n "${rvm_ruby_configure:-""}" ]] ; then
|
181
|
+
|
134
182
|
__rvm_run "configure" "$rvm_ruby_configure"
|
135
|
-
result=$?
|
136
|
-
|
183
|
+
result=$?
|
184
|
+
|
185
|
+
if [[ "$result" -gt 0 ]] ; then
|
186
|
+
"$rvm_scripts_path/log" "error" \
|
187
|
+
"There has been an error while configuring. Aborting the installation."
|
188
|
+
return $result
|
137
189
|
fi
|
190
|
+
|
138
191
|
elif [[ -s ./configure ]] ; then
|
192
|
+
|
139
193
|
# REE stores configure flags differently for head vs. the distributed release.
|
140
|
-
if [[ "ree" != "$rvm_ruby_interpreter" ]]; then
|
194
|
+
if [[ "ree" != "${rvm_ruby_interpreter:-""}" ]]; then
|
141
195
|
__rvm_db "${rvm_ruby_interpreter}_configure_flags" "db_configure_flags"
|
142
196
|
fi
|
143
197
|
|
144
198
|
# On 1.9.2, we manually set the --with-baseruby option
|
145
199
|
# to point to an expanded path.
|
146
200
|
if [[ "${rvm_ruby_string:-""}" = "ruby-1.9.2-head" ]] ; then
|
201
|
+
|
147
202
|
local compatible_baseruby="$rvm_wrappers_path/$(__rvm_18_compat_ruby)/ruby"
|
203
|
+
|
148
204
|
if [[ -x "$compatible_baseruby" ]] ; then
|
149
205
|
configure_parameters="--with-baseruby=$compatible_baseruby"
|
150
206
|
fi
|
151
207
|
fi
|
152
208
|
|
153
|
-
local configure_command="./configure --prefix=$rvm_ruby_home ${db_configure_flags:-""} ${
|
209
|
+
local configure_command="./configure --prefix=$rvm_ruby_home ${db_configure_flags:-""} ${rvm_configure_flags:-""} ${configure_parameters:-""}"
|
210
|
+
|
154
211
|
__rvm_run "configure" "$configure_command" "#configuring $rvm_ruby_string"
|
155
|
-
|
156
|
-
|
157
|
-
|
212
|
+
result=$?
|
213
|
+
|
214
|
+
if [[ "$result" -gt 0 ]] ; then
|
215
|
+
"$rvm_scripts_path/log" "error" \
|
216
|
+
"There has been an error while running configure. Aborting the installation."
|
217
|
+
return $result
|
158
218
|
fi
|
219
|
+
|
159
220
|
else
|
160
|
-
"$rvm_scripts_path/log" "error"
|
221
|
+
"$rvm_scripts_path/log" "error" \
|
222
|
+
"Skipping configure step, 'configure' does not exist, did autoconf not run successfully?"
|
161
223
|
fi
|
162
224
|
|
163
225
|
rvm_ruby_make=${rvm_ruby_make:-"make"}
|
226
|
+
|
164
227
|
__rvm_run "make" "$rvm_ruby_make ${rvm_make_flags:-""}" "#compiling $rvm_ruby_string"
|
165
|
-
result=$?
|
166
|
-
|
228
|
+
result=$?
|
229
|
+
|
230
|
+
if [[ "$result" -gt 0 ]] ; then
|
231
|
+
"$rvm_scripts_path/log" "error" \
|
232
|
+
"There has been an error while running make. Aborting the installation."
|
233
|
+
return $result
|
167
234
|
fi
|
168
235
|
|
169
|
-
if [[ -d .ext/rdoc ]] ; then
|
236
|
+
if [[ -d .ext/rdoc ]] ; then
|
237
|
+
rm -rf .ext/rdoc
|
238
|
+
fi
|
170
239
|
|
171
240
|
rvm_ruby_make_install=${rvm_ruby_make_install:-"make install"}
|
241
|
+
|
172
242
|
__rvm_run "install" "$rvm_ruby_make_install" "#installing $rvm_ruby_string"
|
173
|
-
result=$?
|
174
|
-
|
243
|
+
result=$?
|
244
|
+
|
245
|
+
if [[ "$result" -gt 0 ]] ; then
|
246
|
+
"$rvm_scripts_path/log" "error" \
|
247
|
+
"There has been an error while running make install. Aborting the installation."
|
248
|
+
return $result
|
175
249
|
fi
|
176
250
|
|
177
251
|
export GEM_HOME="$rvm_ruby_gem_home"
|
@@ -179,15 +253,23 @@ __rvm_install_source() {
|
|
179
253
|
export BUNDLE_PATH="$rvm_ruby_gem_home"
|
180
254
|
|
181
255
|
__rvm_rubygems_setup
|
256
|
+
|
182
257
|
__rvm_bin_script
|
258
|
+
|
183
259
|
__rvm_run "chmod.bin" "chmod +x $rvm_ruby_home/bin/*"
|
260
|
+
|
184
261
|
__rvm_post_install
|
185
262
|
|
186
|
-
"$rvm_scripts_path/log" "info"
|
263
|
+
"$rvm_scripts_path/log" "info" \
|
264
|
+
"#complete install of $rvm_ruby_string"
|
265
|
+
|
266
|
+
return 0
|
187
267
|
}
|
188
268
|
|
189
269
|
__rvm_install_ruby() {
|
190
270
|
|
271
|
+
local result
|
272
|
+
|
191
273
|
if [[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] ; then __rvm_select ; fi
|
192
274
|
|
193
275
|
if [[ -n "${RUBYOPT:-""}" ]] ; then ruby_options="$RUBYOPT" ; fi
|
@@ -195,7 +277,8 @@ __rvm_install_ruby() {
|
|
195
277
|
|
196
278
|
# Check for clang if the flag is set
|
197
279
|
__rvm_check_for_clang
|
198
|
-
|
280
|
+
result="$?"
|
281
|
+
|
199
282
|
[[ $result -gt 0 ]] && return $result
|
200
283
|
|
201
284
|
case "$rvm_ruby_interpreter" in
|
@@ -213,37 +296,65 @@ __rvm_install_ruby() {
|
|
213
296
|
rvm_ruby_configure=" true "
|
214
297
|
rvm_ruby_make="rake"
|
215
298
|
rvm_ruby_make_install="sudo rake install"
|
299
|
+
|
216
300
|
__rvm_db "${rvm_ruby_interpreter}_repo_url" "rvm_ruby_url"
|
301
|
+
|
217
302
|
rvm_ruby_repo_url=$rvm_ruby_url
|
303
|
+
|
218
304
|
__rvm_install_source $*
|
219
|
-
result=$?
|
220
|
-
|
305
|
+
result=$?
|
306
|
+
|
307
|
+
if [[ "$result" -gt 0 ]] ; then
|
308
|
+
"$rvm_scripts_path/log" "error" \
|
309
|
+
"There has been an error while trying to install from source. Aborting the installation."
|
310
|
+
return $result
|
221
311
|
fi
|
222
312
|
|
223
313
|
elif [[ "nightly" = "$rvm_ruby_version" ]] ; then
|
224
314
|
macruby_path="/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/bin"
|
225
315
|
# TODO: Separated nightly from head.
|
316
|
+
|
226
317
|
"$rvm_scripts_path/log" "info" "Retrieving the latest nightly macruby build..."
|
318
|
+
|
227
319
|
"$rvm_scripts_path/fetch" "$rvm_ruby_url"
|
228
|
-
result=$?
|
229
|
-
|
320
|
+
result=$?
|
321
|
+
|
322
|
+
if [[ "$result" -gt 0 ]] ; then
|
323
|
+
"$rvm_scripts_path/log" "error" \
|
324
|
+
"There has been an error while trying to fetch the source. Aborting the installation."
|
325
|
+
return $result
|
230
326
|
fi
|
327
|
+
|
231
328
|
mv "$rvm_archives_path/macruby_nightly-latest.pkg" "$rvm_archives_path/macruby_nightly.pkg"
|
329
|
+
|
232
330
|
__rvm_run "macruby/extract" "sudo /usr/sbin/installer -pkg '$rvm_archives_path/macruby_nightly.pkg' -target '/'"
|
331
|
+
|
233
332
|
mkdir -p "$rvm_ruby_home/bin"
|
234
333
|
|
235
334
|
else
|
236
335
|
macruby_path="/Library/Frameworks/MacRuby.framework/Versions/${rvm_ruby_version}/usr/bin"
|
336
|
+
|
237
337
|
# TODO: Separated nightly from head.
|
238
338
|
"$rvm_scripts_path/log" "info" "Retrieving MacRuby ${rvm_ruby_version} ..."
|
339
|
+
|
239
340
|
"$rvm_scripts_path/fetch" "$rvm_ruby_url"
|
240
|
-
|
241
|
-
|
341
|
+
|
342
|
+
result=$?
|
343
|
+
|
344
|
+
if [[ "$result" -gt 0 ]] ; then
|
345
|
+
"$rvm_scripts_path/log" "error" \
|
346
|
+
"There has been an error while trying to fetch the source. Aborting the installation."
|
347
|
+
return $result
|
242
348
|
fi
|
349
|
+
|
243
350
|
mkdir -p $rvm_ruby_src_path
|
351
|
+
|
244
352
|
unzip -o -j "$rvm_archives_path/$rvm_ruby_package_file" "MacRuby ${rvm_ruby_version}/MacRuby ${rvm_ruby_version}.pkg" -d "$rvm_ruby_src_path"
|
353
|
+
|
245
354
|
mv "$rvm_ruby_src_path/MacRuby ${rvm_ruby_version}.pkg" "$rvm_ruby_src_path/$rvm_ruby_string.pkg"
|
355
|
+
|
246
356
|
__rvm_run "macruby/extract" "sudo /usr/sbin/installer -pkg '$rvm_ruby_src_path/$rvm_ruby_string.pkg' -target '/'"
|
357
|
+
|
247
358
|
mkdir -p "$rvm_ruby_home/bin"
|
248
359
|
fi
|
249
360
|
|
@@ -263,17 +374,25 @@ RubyWrapper
|
|
263
374
|
)
|
264
375
|
|
265
376
|
file_name="$rvm_ruby_home/bin/$binary_name"
|
266
|
-
|
377
|
+
|
378
|
+
if [[ -f "$file_name" ]] ; then
|
379
|
+
rm -f "$file_name"
|
380
|
+
fi
|
381
|
+
|
267
382
|
echo "$ruby_wrapper" > "$file_name"
|
268
|
-
|
383
|
+
|
384
|
+
if [[ -f "$file_name" ]] ; then
|
385
|
+
chmod +x $file_name
|
386
|
+
fi
|
387
|
+
|
269
388
|
if [[ "$binary_name" = "ruby" ]] ; then
|
270
389
|
echo "$ruby_wrapper" > "$rvm_bin_path/$rvm_ruby_string"
|
271
390
|
fi
|
272
|
-
unset file_name ruby_wrapper binary_name files prefix
|
273
391
|
done
|
274
392
|
__rvm_irbrc
|
275
393
|
else
|
276
|
-
"$rvm_scripts_path/log" "fail"
|
394
|
+
"$rvm_scripts_path/log" "fail" \
|
395
|
+
"MacRuby can only be installed on a Darwin OS."
|
277
396
|
fi
|
278
397
|
;;
|
279
398
|
|
@@ -285,22 +404,34 @@ RubyWrapper
|
|
285
404
|
"$rvm_scripts_path/log" "info" "Installing Ruby Enterprise Edition from source to: $rvm_ruby_home"
|
286
405
|
|
287
406
|
builtin cd "$rvm_src_path"
|
407
|
+
|
288
408
|
if [[ ${rvm_force_flag:-0} -eq 0 && -d "$rvm_ruby_src_path" && ! -x "$rvm_ruby_src_path/installer" ]] ; then
|
289
|
-
|
409
|
+
|
410
|
+
"$rvm_scripts_path/log" \
|
411
|
+
"It appears that the archive has already been extracted. Skipping extract (use --force to force re-download and extract)."
|
290
412
|
|
291
413
|
else
|
292
414
|
"$rvm_scripts_path/log" "#fetching $rvm_ruby_package_file"
|
293
415
|
|
294
416
|
"$rvm_scripts_path/fetch" "$rvm_ruby_url"
|
295
|
-
result=$?
|
296
|
-
|
417
|
+
result=$?
|
418
|
+
|
419
|
+
if [[ "$result" -gt 0 ]] ; then
|
420
|
+
"$rvm_scripts_path/log" "error" \
|
421
|
+
"There has been an error while trying to fetch the source. Aborting the installation."
|
422
|
+
return $result
|
297
423
|
fi
|
298
424
|
|
299
425
|
rm -rf "$rvm_ruby_src_path"
|
426
|
+
|
300
427
|
__rvm_run "extract" "gunzip < \"$rvm_archives_path/$rvm_ruby_package_file.$rvm_archive_extension\" | tar xf - -C $rvm_src_path" "#extracting $rvm_ruby_package_file to $rvm_ruby_src_path"
|
301
428
|
|
302
|
-
result=$?
|
303
|
-
|
429
|
+
result=$?
|
430
|
+
|
431
|
+
if [[ "$result" -gt 0 ]] ; then
|
432
|
+
"$rvm_scripts_path/log" "error" \
|
433
|
+
"There has been an error while trying to extract the source. Aborting the installation."
|
434
|
+
return $result
|
304
435
|
fi
|
305
436
|
|
306
437
|
mv "$rvm_src_path/$rvm_ruby_package_file" "$rvm_ruby_src_path"
|
@@ -308,25 +439,35 @@ RubyWrapper
|
|
308
439
|
|
309
440
|
builtin cd "$rvm_ruby_src_path"
|
310
441
|
|
442
|
+
# wait, what? v v v TODO: Investigate line smell.
|
311
443
|
mkdir -p "${rvm_ruby_home}/lib/ruby/gems/1.8/gems"
|
312
|
-
|
313
|
-
|
444
|
+
|
445
|
+
if [[ -n "$rvm_configure_flags" ]] ; then
|
446
|
+
rvm_configure_flags="${rvm_configure_flags//--/-c --}"
|
314
447
|
fi
|
315
448
|
|
316
|
-
if [[ "Darwin" = "$(uname)"
|
449
|
+
if [[ "Darwin" = "$(uname)" && "1.8.6" = "$rvm_ruby_version" && -z "$rvm_ree_options" ]] ; then
|
317
450
|
rvm_ree_options="${rvm_ree_options} --no-tcmalloc"
|
318
451
|
fi
|
319
452
|
|
320
453
|
__rvm_db "${rvm_ruby_interpreter}_configure_flags" "db_configure_flags"
|
321
454
|
|
322
455
|
__rvm_apply_patches "$rvm_ruby_src_path/source"
|
323
|
-
result=$?
|
324
|
-
|
456
|
+
result=$?
|
457
|
+
|
458
|
+
if [[ "$result" -gt 0 ]] ; then
|
459
|
+
"$rvm_scripts_path/log" "error" \
|
460
|
+
"There has been an error while trying to apply patches to ree. Aborting the installation."
|
461
|
+
return $result
|
325
462
|
fi
|
326
463
|
|
327
|
-
__rvm_run "install" "./installer -a $rvm_rubies_path/$rvm_ruby_string $rvm_ree_options $db_configure_flags $
|
328
|
-
result=$?
|
329
|
-
|
464
|
+
__rvm_run "install" "./installer -a $rvm_rubies_path/$rvm_ruby_string $rvm_ree_options $db_configure_flags $rvm_configure_flags" "#installing $rvm_ruby_string"
|
465
|
+
result=$?
|
466
|
+
|
467
|
+
if [[ "$result" -gt 0 ]] ; then
|
468
|
+
"$rvm_scripts_path/log" "error" \
|
469
|
+
"There has been an error while trying to run the ree installer. Aborting the installation."
|
470
|
+
return $result
|
330
471
|
fi
|
331
472
|
|
332
473
|
chmod +x "$rvm_ruby_home"/bin/*
|
@@ -336,10 +477,13 @@ RubyWrapper
|
|
336
477
|
__rvm_bin_script
|
337
478
|
__rvm_post_install
|
338
479
|
else
|
480
|
+
|
339
481
|
__rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_version}_repo_url" "rvm_ruby_url"
|
482
|
+
|
340
483
|
if [[ -z "$rvm_ruby_url" ]] ; then
|
341
484
|
"$rvm_scripts_path/log" "fail" "rvm does not know the rvm repo url for '${rvm_ruby_interpreter}_${rvm_ruby_version}'"
|
342
485
|
result=1
|
486
|
+
|
343
487
|
else
|
344
488
|
rvm_ruby_repo_url="$rvm_ruby_url"
|
345
489
|
if [[ ${rvm_make_flags_flag:-0} -eq 1 ]] ; then __rvm_make_flags ; fi
|
@@ -349,65 +493,99 @@ RubyWrapper
|
|
349
493
|
;;
|
350
494
|
|
351
495
|
rbx|rubinius)
|
496
|
+
|
352
497
|
"$rvm_scripts_path/log" "info" "#dependency installation"
|
353
498
|
|
354
499
|
# Ensure we have a 1.8.7 compatible ruby installed.
|
355
500
|
__rvm_ensure_has_18_compat_ruby || return 1
|
501
|
+
|
356
502
|
# TODO: use 'rvm gems load' here:
|
357
503
|
unset CFLAGS LDFLAGS ARCHFLAGS # Important.
|
358
504
|
|
359
505
|
unset BUNDLE_PATH GEM_HOME GEM_PATH MY_RUBY_HOME IRBRC
|
506
|
+
|
360
507
|
__rvm_remove_rvm_from_path
|
508
|
+
|
361
509
|
__rvm_conditionally_add_bin_path ; export PATH
|
510
|
+
|
362
511
|
builtin hash -r
|
363
512
|
|
364
513
|
if [[ -n "$(echo $rvm_ruby_version | awk '/^1\.0/')" ]] && [[ $rvm_head_flag -eq 0 ]] ; then
|
514
|
+
|
365
515
|
"$rvm_scripts_path/log" "info" "#downloading $rvm_ruby_package_file, this may take a while depending on your connection..."
|
516
|
+
|
366
517
|
"$rvm_scripts_path/fetch" "$rvm_ruby_url"
|
367
|
-
result=$?
|
368
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
369
|
-
fi
|
370
|
-
__rvm_run "extract" "gunzip < \"$rvm_archives_path/$(basename $rvm_ruby_package_file)\" | tar xf - -C $rvm_src_path" "Extracting $rvm_ruby_package_file ..."
|
518
|
+
result=$?
|
371
519
|
|
372
|
-
|
373
|
-
"$rvm_scripts_path/log" "error"
|
520
|
+
if [[ "$result" -gt 0 ]] ; then
|
521
|
+
"$rvm_scripts_path/log" "error" \
|
522
|
+
"There has been an error while trying to fetch the source. Aborting the installation."
|
523
|
+
return $result
|
524
|
+
fi
|
525
|
+
__rvm_run "extract" \
|
526
|
+
"gunzip < \"$rvm_archives_path/$(basename $rvm_ruby_package_file)\" | tar xf - -C $rvm_src_path" "Extracting $rvm_ruby_package_file ..."
|
527
|
+
result=$?
|
528
|
+
|
529
|
+
if [[ "$result" -gt 0 ]] ; then
|
530
|
+
"$rvm_scripts_path/log" "error" \
|
531
|
+
"There has been an error while trying to extract the source. Aborting the installation."
|
532
|
+
return $result
|
374
533
|
fi
|
375
534
|
|
376
535
|
# Remove the left over folder first.
|
377
536
|
rm -rf "$rvm_ruby_src_path"
|
537
|
+
|
378
538
|
mv "$rvm_src_path/rubinius-${rvm_ruby_version}" "$rvm_ruby_src_path"
|
379
539
|
else
|
380
540
|
__rvm_db "rubinius_repo_url" "rvm_ruby_repo_url"
|
381
541
|
#rvm_ruby_home="$rvm_rubies_path/$rvm_ruby_interpreter-$rvm_ruby_version"
|
382
542
|
__rvm_fetch_from_github "rbx"
|
383
|
-
result=$?
|
384
|
-
|
543
|
+
result=$?
|
544
|
+
|
545
|
+
if [[ "$result" -gt 0 ]] ; then
|
546
|
+
"$rvm_scripts_path/log" "error" \
|
547
|
+
"There has been an error while fetching the rbx git repo. Aborting the installation."
|
548
|
+
return $result
|
385
549
|
fi
|
386
550
|
fi
|
387
551
|
|
388
|
-
builtin cd "$rvm_ruby_src_path"
|
552
|
+
builtin cd "$rvm_ruby_src_path"
|
553
|
+
|
554
|
+
chmod +x ./configure
|
389
555
|
|
390
556
|
__rvm_apply_patches
|
391
|
-
result=$?
|
392
|
-
|
557
|
+
result=$?
|
558
|
+
|
559
|
+
if [[ "$result" -gt 0 ]] ; then
|
560
|
+
"$rvm_scripts_path/log" "error" \
|
561
|
+
"There has been an error while trying to apply patches to rubinius. Aborting the installation."
|
562
|
+
return $result
|
393
563
|
fi
|
394
564
|
|
395
565
|
__rvm_db "${rvm_ruby_interpreter}_configure_flags" "db_configure_flags"
|
396
566
|
|
397
567
|
export ruby="$(__rvm_18_compat_ruby)"
|
398
568
|
|
399
|
-
|
400
|
-
|
569
|
+
rvm_configure_flags="${rvm_configure_flags:-"--skip-system"}"
|
570
|
+
|
571
|
+
rvm_ruby_configure="$rvm_bin_path/$ruby configure --prefix=$rvm_ruby_home $db_configure_flags $rvm_configure_flags" ; message="Configuring rbx"
|
572
|
+
|
401
573
|
if [[ "$rvm_llvm_flag" = "0" ]] ; then
|
402
574
|
rvm_ruby_configure="$rvm_ruby_configure --disable-llvm"
|
575
|
+
|
403
576
|
else
|
404
577
|
if [[ "$rvm_ruby_patch_level" = "rc1" ]] ; then
|
405
578
|
rvm_ruby_configure="$rvm_ruby_configure --enable-llvm"
|
406
579
|
fi
|
407
580
|
fi
|
581
|
+
|
408
582
|
__rvm_run "configure" "$rvm_ruby_configure" "$message"
|
409
|
-
result=$?
|
410
|
-
|
583
|
+
result=$?
|
584
|
+
|
585
|
+
if [[ "$result" -gt 0 ]] ; then
|
586
|
+
"$rvm_scripts_path/log" "error" \
|
587
|
+
"There has been an error while running '$rvm_ruby_configure'. Aborting the installation."
|
588
|
+
return $result
|
411
589
|
fi
|
412
590
|
|
413
591
|
if [[ "$rvm_trace_flag" -eq 1 ]] ; then
|
@@ -415,9 +593,14 @@ RubyWrapper
|
|
415
593
|
else
|
416
594
|
rvm_ruby_make="$rvm_wrappers_path/$ruby/rake install" ; message="Compiling rbx"
|
417
595
|
fi
|
596
|
+
|
418
597
|
__rvm_run "rake" "$rvm_ruby_make" "$message"
|
419
|
-
result=$?
|
420
|
-
|
598
|
+
result=$?
|
599
|
+
|
600
|
+
if [[ "$result" -gt 0 ]] ; then
|
601
|
+
"$rvm_scripts_path/log" "error" \
|
602
|
+
"There has been an error while running '$rvm_ruby_configure'. Aborting the installation."
|
603
|
+
return $result
|
421
604
|
fi ; unset ruby
|
422
605
|
|
423
606
|
# Symlink rubinius wrappers
|
@@ -425,25 +608,39 @@ RubyWrapper
|
|
425
608
|
|
426
609
|
# Install IRB Wrapper on Rubinius.
|
427
610
|
file_name="$rvm_ruby_home/bin/irb"
|
611
|
+
|
428
612
|
rm -f "$file_name"
|
613
|
+
|
429
614
|
printf '#!/usr/bin/env bash\n' > "$file_name"
|
615
|
+
|
430
616
|
printf "exec '$rvm_ruby_home/bin/rbx' 'irb' \"\$@\"\n" >> "$file_name"
|
617
|
+
|
431
618
|
[[ -f "$file_name" ]] && chmod +x "$file_name"
|
432
619
|
|
433
620
|
# Install Gem Wrapper on Rubinius.
|
434
621
|
file_name="$rvm_ruby_home/bin/gem"
|
622
|
+
|
435
623
|
cp -f "$rvm_ruby_home/lib/bin/gem.rb" "$file_name"
|
624
|
+
|
436
625
|
__rvm_inject_ruby_shebang "$file_name"
|
437
|
-
|
626
|
+
|
627
|
+
if [[ -f "$file_name" ]] ; then
|
628
|
+
chmod +x "$file_name"
|
629
|
+
fi
|
630
|
+
|
438
631
|
unset file_name
|
439
632
|
|
440
|
-
binaries=
|
633
|
+
binaries=(erb ri rdoc)
|
634
|
+
|
441
635
|
__rvm_post_install
|
636
|
+
|
442
637
|
__rvm_irbrc
|
638
|
+
|
443
639
|
__rvm_bin_script
|
444
640
|
;;
|
445
641
|
|
446
642
|
jruby)
|
643
|
+
|
447
644
|
if ! command -v java > /dev/null; then
|
448
645
|
printf "java must be installed and in your path in order to install JRuby." ; return 1
|
449
646
|
fi
|
@@ -451,23 +648,39 @@ RubyWrapper
|
|
451
648
|
builtin cd "$rvm_src_path"
|
452
649
|
|
453
650
|
__rvm_fetch_ruby
|
454
|
-
result=$?
|
455
|
-
|
651
|
+
result=$?
|
652
|
+
|
653
|
+
if [[ "$result" -gt 0 ]] ; then
|
654
|
+
"$rvm_scripts_path/log" "error" \
|
655
|
+
"There has been an error while trying to fetch the source. Aborting the installation."
|
656
|
+
return $result
|
456
657
|
fi
|
457
658
|
|
458
659
|
builtin cd "$rvm_ruby_src_path"
|
459
|
-
if [[ $rvm_head_flag -eq 1 ]] ; then __rvm_run "ant.dist" "ant dist" "#ant dist" ; fi
|
460
660
|
|
461
|
-
|
462
|
-
|
463
|
-
__rvm_run "nailgun" "builtin cd \"$rvm_ruby_src_path/tool/nailgun\" && make $rvm_make_flags" "Building Nailgun"
|
464
|
-
else
|
465
|
-
__rvm_run "nailgun" "builtin cd \"$rvm_ruby_src_path/tool/nailgun\" && ./configure --prefix=$rvm_ruby_home && make $rvm_make_flags" "Building Nailgun"
|
661
|
+
if [[ ${rvm_head_flag:-0} -eq 1 ]] ; then
|
662
|
+
__rvm_run "ant.dist" "ant dist" "#ant dist"
|
466
663
|
fi
|
467
664
|
|
468
|
-
|
665
|
+
mkdir -p "$rvm_ruby_home/bin/"
|
666
|
+
|
667
|
+
case "$rvm_ruby_version" in
|
668
|
+
1.3|1.2)
|
669
|
+
__rvm_run "nailgun" \
|
670
|
+
"builtin cd \"$rvm_ruby_src_path/tool/nailgun\" && make $rvm_make_flags" "Building Nailgun"
|
671
|
+
;;
|
672
|
+
*)
|
673
|
+
__rvm_run "nailgun" \
|
674
|
+
"builtin cd \"$rvm_ruby_src_path/tool/nailgun\" && ./configure --prefix=$rvm_ruby_home && make $rvm_make_flags" "Building Nailgun"
|
675
|
+
;;
|
676
|
+
esac
|
677
|
+
|
678
|
+
if [[ -z "${rvm_ruby_home:-""}" || "$rvm_ruby_home" = "/" ]] ; then
|
679
|
+
echo "WTH?!?! rvm_ruby_home == / ??? not removing." ; return 1000000
|
680
|
+
fi
|
469
681
|
|
470
682
|
rm -rf "$rvm_ruby_home"
|
683
|
+
|
471
684
|
__rvm_run "install" "/bin/cp -Rf $rvm_ruby_src_path $rvm_ruby_home" "#installing JRuby to $rvm_ruby_home"
|
472
685
|
|
473
686
|
(
|
@@ -482,22 +695,28 @@ RubyWrapper
|
|
482
695
|
# mv $rvm_ruby_home/bin/jruby.new $rvm_ruby_home/bin/jruby
|
483
696
|
chmod +x "$rvm_ruby_home/bin/jruby"
|
484
697
|
|
485
|
-
|
698
|
+
binaries=(jrubyc jirb_swing jirb jgem rdoc ri spec autospec testrb ast generate_yaml_index.rb)
|
699
|
+
for binary in "${binaries[@]}" ; do
|
486
700
|
__rvm_inject_gem_env "$rvm_ruby_home/bin/$binary"
|
487
|
-
done
|
701
|
+
done
|
488
702
|
|
489
703
|
__rvm_inject_ruby_shebang "$rvm_ruby_home/bin/rake"
|
490
704
|
|
491
705
|
__rvm_rubygems_setup
|
706
|
+
|
492
707
|
__rvm_irbrc
|
708
|
+
|
493
709
|
__rvm_bin_script
|
710
|
+
|
494
711
|
__rvm_use
|
495
712
|
|
496
713
|
__rvm_post_install
|
497
714
|
|
498
715
|
# jruby ships with some built in gems, copy them in to place.
|
499
716
|
if [[ -d "$rvm_ruby_home/lib/ruby/gems/1.8" ]]; then
|
717
|
+
|
500
718
|
"$rvm_scripts_path/log" "info" "Copying across included gems"
|
719
|
+
|
501
720
|
cp -R "$rvm_ruby_home/lib/ruby/gems/1.8/" "$GEM_HOME/"
|
502
721
|
fi
|
503
722
|
;;
|
@@ -506,35 +725,54 @@ RubyWrapper
|
|
506
725
|
__rvm_ensure_has_18_compat_ruby
|
507
726
|
|
508
727
|
"$rvm_scripts_path/log" "info" "Running MagLev prereqs checking script."
|
728
|
+
|
509
729
|
"$rvm_scripts_path/maglev"
|
510
|
-
result=$?
|
511
|
-
|
730
|
+
result=$?
|
731
|
+
|
732
|
+
if [[ "$result" -gt 0 ]] ; then
|
733
|
+
"$rvm_scripts_path/log" "error" \
|
734
|
+
"Prerequisite checks have failed. Aborting the installation."
|
735
|
+
return $result
|
512
736
|
fi
|
513
737
|
|
514
738
|
builtin cd "$rvm_src_path"
|
515
739
|
|
516
740
|
if [[ ! -d "$rvm_src_path/$rvm_ruby_string" || ${rvm_force_flag:-0} -eq 1 ]] ; then
|
741
|
+
|
517
742
|
rm -rf "$rvm_src_path/$rvm_ruby_string/" "$rvm_src_path/$rvm_ruby_string/"
|
743
|
+
|
518
744
|
__rvm_fetch_ruby
|
519
|
-
result=$?
|
520
|
-
|
745
|
+
result=$?
|
746
|
+
|
747
|
+
if [[ "$result" -gt 0 ]] ; then
|
748
|
+
"$rvm_scripts_path/log" "error" \
|
749
|
+
"There has been an error while trying to fetch the source. Aborting the installation."
|
750
|
+
return $result
|
521
751
|
fi
|
522
752
|
fi
|
523
753
|
|
524
|
-
if [[ $rvm_head_flag -eq 1 ]] ; then
|
754
|
+
if [[ ${rvm_head_flag:-0} -eq 1 ]] ; then
|
755
|
+
|
525
756
|
builtin cd "$rvm_ruby_src_path"
|
757
|
+
|
526
758
|
rvm_gemstone_package_file="GemStone-$(\grep ^GEMSTONE version.txt | cut -f2 -d-).$(uname -sm | \tr ' ' '-')"
|
759
|
+
|
527
760
|
rvm_gemstone_url="${rvm_gemstone_url:-"$maglev_url/${rvm_gemstone_package_file}.${rvm_archive_extension}"}"
|
528
761
|
fi
|
529
762
|
|
530
763
|
"$rvm_scripts_path/log" "info" "Downloading the GemStone package, this may take a while depending on your connection..."
|
531
764
|
|
532
765
|
"$rvm_scripts_path/fetch" "$rvm_gemstone_url"
|
533
|
-
result=$?
|
534
|
-
|
766
|
+
result=$?
|
767
|
+
|
768
|
+
if [[ "$result" -gt 0 ]] ; then
|
769
|
+
"$rvm_scripts_path/log" "error" \
|
770
|
+
"There has been an error while trying to fetch the GemStone package. Aborting the installation."
|
771
|
+
return $result
|
535
772
|
fi
|
536
773
|
|
537
774
|
builtin cd "$rvm_src_path"
|
775
|
+
|
538
776
|
if [[ -s "$rvm_ruby_package_file" ]] ; then
|
539
777
|
mv "$rvm_ruby_package_file" "$rvm_ruby_src_path"
|
540
778
|
fi
|
@@ -542,15 +780,24 @@ RubyWrapper
|
|
542
780
|
builtin cd "$rvm_ruby_src_path"
|
543
781
|
|
544
782
|
__rvm_run "gemstone.extract" "gunzip < \"$rvm_archives_path/${rvm_gemstone_package_file}.${rvm_archive_extension}\" | tar xf - -C $rvm_ruby_src_path"
|
545
|
-
result=$?
|
546
|
-
|
783
|
+
result=$?
|
784
|
+
|
785
|
+
if [[ "$result" -gt 0 ]] ; then
|
786
|
+
"$rvm_scripts_path/log" "error" \
|
787
|
+
"There has been an error while trying to extract the GemStone package. Aborting the installation."
|
788
|
+
return $result
|
547
789
|
fi
|
548
790
|
|
549
|
-
chmod -R 777 "$rvm_gemstone_package_file" # for now.
|
791
|
+
chmod -R 777 "$rvm_gemstone_package_file" # for now. # WTF?! Crack.smoke!(:huff)
|
792
|
+
|
550
793
|
ln -nfs "$rvm_gemstone_package_file" "gemstone"
|
551
794
|
|
552
|
-
if [[ -z "$rvm_ruby_home"
|
553
|
-
|
795
|
+
if [[ -z "${rvm_ruby_home:-""}" || "$rvm_ruby_home" = "/" ]] ; then
|
796
|
+
echo "WTH?!?! rvm_ruby_home == / ??? not removing." ; return 1000000
|
797
|
+
else
|
798
|
+
rm -rf $rvm_ruby_home
|
799
|
+
fi
|
800
|
+
|
554
801
|
__rvm_run "install" "/bin/cp -Rf $rvm_ruby_src_path $rvm_ruby_home" "Installing maglev to $rvm_ruby_home"
|
555
802
|
|
556
803
|
(
|
@@ -560,9 +807,10 @@ RubyWrapper
|
|
560
807
|
done ; unset binary
|
561
808
|
)
|
562
809
|
|
563
|
-
|
810
|
+
binaries=(maglev-ruby maglev-irb maglev-gem)
|
811
|
+
for binary in "${binaries[@]}" ; do
|
564
812
|
__rvm_inject_gem_env "$rvm_ruby_home/bin/$binary"
|
565
|
-
done
|
813
|
+
done
|
566
814
|
|
567
815
|
builtin cd "$rvm_ruby_home"
|
568
816
|
if [[ $rvm_head_flag -eq 1 ]] ; then
|
@@ -591,7 +839,9 @@ RubyWrapper
|
|
591
839
|
# TODO: Figure out if anything needs to be done with rubygems.
|
592
840
|
#__rvm_rubygems_setup
|
593
841
|
__rvm_irbrc
|
842
|
+
|
594
843
|
__rvm_bin_script
|
844
|
+
|
595
845
|
__rvm_use
|
596
846
|
;;
|
597
847
|
|
@@ -601,11 +851,16 @@ RubyWrapper
|
|
601
851
|
fi
|
602
852
|
|
603
853
|
if [[ $rvm_head_flag -eq 1 ]] ; then
|
854
|
+
|
604
855
|
mono_version="$(mono -V | head -n 1 | cut -d ' ' -f5)"
|
856
|
+
|
605
857
|
if "$rvm_scripts_path/match" "$mono_version" "([0-9]+)\.([0-9]+)\.?([0-9]+)?" ; then
|
858
|
+
|
606
859
|
mono_major_ver="$(echo "$mono_version" | cut -d '.' -f1)"
|
860
|
+
|
607
861
|
mono_minor_ver="$(echo "$mono_version" | cut -d '.' -f2)"
|
608
|
-
|
862
|
+
|
863
|
+
if [[ $mono_major_ver -lt 2 ]] || ( [[ $mono_major_ver -eq 2 && $mono_minor_ver -lt 6 ]] ) ; then
|
609
864
|
printf "Mono 2.6 (or greater) must be installed and in your path in order to build IronRuby from the repository."
|
610
865
|
printf "Version detected: ${mono_version}"
|
611
866
|
return 1
|
@@ -618,7 +873,9 @@ RubyWrapper
|
|
618
873
|
__rvm_ensure_has_18_compat_ruby
|
619
874
|
|
620
875
|
__rvm_fetch_ruby
|
876
|
+
|
621
877
|
if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi
|
878
|
+
|
622
879
|
builtin cd "$rvm_ruby_src_path"
|
623
880
|
|
624
881
|
compatible_ruby="$(__rvm_18_compat_ruby)"
|
@@ -658,7 +915,7 @@ RubyWrapper
|
|
658
915
|
fi
|
659
916
|
|
660
917
|
binaries=(gem irb rdoc rake ri ruby)
|
661
|
-
for binary_name in ${binaries[@]} ; do
|
918
|
+
for binary_name in "${binaries[@]}" ; do
|
662
919
|
if [[ -s "$rvm_ruby_home/bin/$binary_name" ]] ; then
|
663
920
|
tr -d '\r' < "$rvm_ruby_home/bin/$binary_name" > "$rvm_ruby_home/bin/$binary_name.new"
|
664
921
|
#sed -e '1,1s=.*=#!'"/usr/bin/env ir=" "$rvm_ruby_home/bin/$binary_name" > "$rvm_ruby_home/bin/$binary_name.new"
|
@@ -676,10 +933,15 @@ RubyWrapper
|
|
676
933
|
;;
|
677
934
|
|
678
935
|
mput|shyouhei)
|
936
|
+
|
679
937
|
if [[ ${rvm_make_flags_flag:-0} -eq 1 ]] ; then __rvm_make_flags ; fi
|
938
|
+
|
680
939
|
unset BUNDLE_PATH GEM_HOME GEM_PATH MY_RUBY_HOME IRBRC
|
940
|
+
|
681
941
|
__rvm_remove_rvm_from_path
|
942
|
+
|
682
943
|
__rvm_conditionally_add_bin_path ; export PATH
|
944
|
+
|
683
945
|
builtin hash -r
|
684
946
|
|
685
947
|
rvm_ruby_home="$rvm_rubies_path/$rvm_ruby_interpreter-$rvm_ruby_version"
|
@@ -687,48 +949,81 @@ RubyWrapper
|
|
687
949
|
__rvm_fetch_from_github "mput" "trunk"
|
688
950
|
|
689
951
|
__rvm_apply_patches
|
690
|
-
result=$?
|
691
|
-
|
952
|
+
result=$?
|
953
|
+
|
954
|
+
if [[ "$result" -gt 0 ]] ; then
|
955
|
+
"$rvm_scripts_path/log" "error" \
|
956
|
+
"There has been an error while trying to apply patches to mput. Aborting the installation."
|
957
|
+
return $result
|
692
958
|
fi
|
693
959
|
|
694
960
|
if [[ ! -s "$rvm_ruby_src_path/configure" ]] ; then
|
961
|
+
|
695
962
|
if command -v autoconf &> /dev/null ; then
|
963
|
+
|
696
964
|
__rvm_run "autoconf" "autoconf" "Running autoconf"
|
965
|
+
|
697
966
|
else
|
698
|
-
|
967
|
+
"$rvm_scripts_path/log" "fail" \
|
968
|
+
"rvm expects autoconf to install this ruby interpreter, autoconf was not found in PATH. Aborting installation."
|
969
|
+
return $result
|
699
970
|
fi
|
700
971
|
fi
|
701
972
|
|
702
973
|
if [[ -s ./Makefile ]] && [[ -z "$rvm_reconfigure_flag" ]] ; then
|
703
|
-
|
704
|
-
|
705
|
-
|
974
|
+
|
975
|
+
if [[ ${rvm_debug_flag:-0} -gt 0 ]] ; then
|
976
|
+
"$rvm_scripts_path/log" "debug" "Skipping configure step, Makefile exists so configure must have already been run."
|
977
|
+
fi
|
978
|
+
|
706
979
|
elif [[ -n "$rvm_ruby_configure" ]] ; then
|
980
|
+
|
707
981
|
__rvm_run "configure" "$rvm_ruby_configure"
|
708
|
-
|
709
|
-
|
710
|
-
|
982
|
+
result=$?
|
983
|
+
|
984
|
+
if [[ "$result" -gt 0 ]] ; then
|
985
|
+
"$rvm_scripts_path/log" "error" \
|
986
|
+
"There has been an error while trying to configure the source. Aborting the installation."
|
987
|
+
return $result
|
988
|
+
fi
|
711
989
|
|
712
990
|
elif [[ -s ./configure ]] ; then
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
991
|
+
local configure_command="./configure --prefix=$rvm_ruby_home $rvm_configure_flags"
|
992
|
+
|
993
|
+
__rvm_run "configure" "" "Configuring $rvm_ruby_string using $rvm_configure_flags, this may take a while depending on your cpu(s)..."
|
994
|
+
result=$?
|
995
|
+
|
996
|
+
if [[ "$result" -gt 0 ]] ; then
|
997
|
+
"$rvm_scripts_path/log" "error" \
|
998
|
+
"There has been an error while trying to configure the source. Aborting the installation."
|
999
|
+
return $result
|
720
1000
|
fi
|
721
1001
|
|
1002
|
+
else
|
1003
|
+
"$rvm_scripts_path/log" "error" \
|
1004
|
+
"Skipping configure step, 'configure' script does not exist, did autoconf not run successfully?"
|
1005
|
+
fi
|
1006
|
+
|
722
1007
|
rvm_ruby_make=${rvm_ruby_make:-"make"}
|
1008
|
+
|
723
1009
|
__rvm_run "make" "$rvm_ruby_make $rvm_make_flags" "Compiling $rvm_ruby_string, this may take a while depending on your cpu(s)..."
|
724
|
-
result=$?
|
725
|
-
|
1010
|
+
result=$?
|
1011
|
+
|
1012
|
+
if [[ "$result" -gt 0 ]] ; then
|
1013
|
+
"$rvm_scripts_path/log" "error" \
|
1014
|
+
"There has been an error while trying to run make. Aborting the installation."
|
1015
|
+
return $result
|
726
1016
|
fi
|
727
1017
|
|
728
1018
|
rvm_ruby_make_install=${rvm_ruby_make_install:-"make install"}
|
1019
|
+
|
729
1020
|
__rvm_run "install" "$rvm_ruby_make_install" "Installing $rvm_ruby_string"
|
730
|
-
result=$?
|
731
|
-
|
1021
|
+
result=$?
|
1022
|
+
|
1023
|
+
if [[ "$result" -gt 0 ]] ; then
|
1024
|
+
"$rvm_scripts_path/log" "error" \
|
1025
|
+
"There has been an error while trying to run make install. Aborting the installation."
|
1026
|
+
return $result
|
732
1027
|
fi
|
733
1028
|
|
734
1029
|
"$rvm_scripts_path/log" "info" "Installation of $rvm_ruby_string is complete."
|
@@ -738,20 +1033,22 @@ RubyWrapper
|
|
738
1033
|
export BUNDLE_PATH="$rvm_ruby_gem_home"
|
739
1034
|
|
740
1035
|
__rvm_rubygems_setup
|
1036
|
+
|
741
1037
|
__rvm_bin_script
|
1038
|
+
|
742
1039
|
__rvm_run "chmod.bin" "chmod +x $rvm_ruby_home/bin/*"
|
1040
|
+
|
743
1041
|
__rvm_post_install
|
744
1042
|
;;
|
745
1043
|
|
746
1044
|
ruby)
|
1045
|
+
|
747
1046
|
__rvm_check_for_bison # && Run like hell...
|
748
|
-
|
749
|
-
if [[ ${rvm_make_flags_flag:-0} -eq 1 ]] ; then __rvm_make_flags ; fi
|
1047
|
+
if [[ $? -gt 0 ]] ; then return $result ; fi
|
750
1048
|
|
751
|
-
|
752
|
-
__rvm_install_source $*
|
753
|
-
)
|
1049
|
+
if [[ ${rvm_make_flags_flag:-0} -eq 1 ]] ; then __rvm_make_flags ; fi
|
754
1050
|
|
1051
|
+
( __rvm_install_source $* )
|
755
1052
|
result=$?
|
756
1053
|
;;
|
757
1054
|
|
@@ -765,38 +1062,57 @@ RubyWrapper
|
|
765
1062
|
|
766
1063
|
rvm_hook="after_install" ; source "$rvm_scripts_path/hook"
|
767
1064
|
|
768
|
-
if [[ -n "$ruby_options" ]] ; then
|
1065
|
+
if [[ -n "$ruby_options" ]] ; then
|
1066
|
+
RUBYOPT="$ruby_options"
|
1067
|
+
export RUBYOPT
|
1068
|
+
fi
|
769
1069
|
|
770
1070
|
return $result
|
771
1071
|
}
|
772
1072
|
|
773
1073
|
__rvm_fetch_from_github() {
|
774
1074
|
rm -rf "$rvm_ruby_src_path"
|
1075
|
+
|
775
1076
|
if [[ ! -d "$rvm_ruby_repo_path/.git" ]] ; then
|
1077
|
+
|
776
1078
|
rm -rf "$rvm_ruby_repo_path"
|
1079
|
+
|
777
1080
|
builtin cd "$rvm_home"
|
1081
|
+
|
778
1082
|
__rvm_run "$1.repo" "git clone --depth 1 $rvm_ruby_repo_url $rvm_ruby_repo_path" "Cloning $rvm_ruby_repo_url"
|
779
|
-
result=$?
|
1083
|
+
result=$?
|
1084
|
+
|
1085
|
+
if [[ "$result" -gt 0 ]] ; then
|
780
1086
|
rvm_ruby_repo_http_url="${rvm_ruby_repo_url//git:/http:}"
|
1087
|
+
|
781
1088
|
"$rvm_scripts_path/log" "info" "Could not fetch $rvm_ruby_repo_url - trying $rvm_ruby_repo_http_url"
|
1089
|
+
|
782
1090
|
__rvm_run "$1.repo" "git clone --depth 1 $rvm_ruby_repo_http_url $rvm_ruby_repo_path" "Cloning $rvm_ruby_repo_http_url"
|
783
1091
|
fi
|
784
1092
|
else
|
785
1093
|
local branch="${2:-"master"}"
|
1094
|
+
|
786
1095
|
builtin cd "$rvm_ruby_repo_path"
|
1096
|
+
|
787
1097
|
__rvm_run "$1.repo" "git pull origin $branch" "Pulling from origin $branch"
|
788
1098
|
fi
|
1099
|
+
|
789
1100
|
__rvm_run "$1.copy" "\\cp -R \"$rvm_ruby_repo_path\" \"$rvm_ruby_src_path\"" "Copying from repo to source..."
|
1101
|
+
|
790
1102
|
builtin cd "$rvm_ruby_src_path"
|
791
1103
|
}
|
792
1104
|
|
793
1105
|
__rvm_fetch_ruby() {
|
794
|
-
[[
|
1106
|
+
[[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] && __rvm_select
|
1107
|
+
|
795
1108
|
"$rvm_scripts_path/log" "info" "#fetching ${rvm_ruby_string}"
|
796
1109
|
|
797
1110
|
if [[ ${rvm_head_flag:-0} -eq 0 && -z "${rvm_ruby_tag:-""}" && -z "${rvm_ruby_revision:-""}" ]] ; then
|
1111
|
+
|
798
1112
|
rvm_ruby_package_name="${rvm_ruby_package_name:-"$rvm_ruby_string"}"
|
1113
|
+
|
799
1114
|
rvm_ruby_package_file="${rvm_ruby_package_file:-"$rvm_ruby_package_name"}"
|
1115
|
+
|
800
1116
|
if [[ "ruby" = "$rvm_ruby_interpreter" ]]; then
|
801
1117
|
rvm_archive_extension="${rvm_archive_extension:-tar.bz2}"
|
802
1118
|
else
|
@@ -804,45 +1120,77 @@ __rvm_fetch_ruby() {
|
|
804
1120
|
fi
|
805
1121
|
|
806
1122
|
if [[ ! -s "$rvm_archives_path/$rvm_ruby_package_file.$rvm_archive_extension" ]] ; then
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
1123
|
+
|
1124
|
+
case "$rvm_ruby_interpreter" in
|
1125
|
+
ruby)
|
1126
|
+
rvm_ruby_url="$(__rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_release_version}.${rvm_ruby_major_version}_url")/$rvm_ruby_package_file.$rvm_archive_extension"
|
1127
|
+
;;
|
1128
|
+
ree)
|
1129
|
+
rvm_ruby_url="$(__rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_version}_url")/${rvm_ruby_package_file}.${rvm_archive_extension}"
|
1130
|
+
;;
|
1131
|
+
jruby)
|
1132
|
+
rvm_ruby_url="$(__rvm_db "${rvm_ruby_interpreter}_url")/${rvm_ruby_version}/${rvm_ruby_package_file}.${rvm_archive_extension}"
|
1133
|
+
;;
|
1134
|
+
maglev)
|
1135
|
+
: # Should already be set from selector
|
1136
|
+
;;
|
1137
|
+
*)
|
1138
|
+
rvm_ruby_url="$(__rvm_db "${rvm_ruby_interpreter}_url")/${rvm_ruby_package_file}.${rvm_archive_extension}"
|
1139
|
+
;;
|
1140
|
+
esac
|
1141
|
+
|
1142
|
+
"$rvm_scripts_path/log" "info" "#downloading ${rvm_ruby_package_file}, this may take a while depending on your connection..."
|
1143
|
+
|
819
1144
|
"$rvm_scripts_path/fetch" "${rvm_ruby_url}"
|
820
|
-
result=$?
|
821
|
-
|
1145
|
+
result=$?
|
1146
|
+
|
1147
|
+
if [[ "$result" -gt 0 ]] ; then
|
1148
|
+
"$rvm_scripts_path/log" "error" \
|
1149
|
+
"There has been an error while trying to fetch the source. Aborting the installation."
|
1150
|
+
return $result
|
822
1151
|
fi
|
823
1152
|
fi
|
824
1153
|
|
825
1154
|
if [[ ! -d "$rvm_ruby_src_path" || ${rvm_force_flag:-0} -eq 1 ]] ; then
|
826
|
-
|
1155
|
+
|
1156
|
+
if [[ -d "$rvm_ruby_src_path" ]] ; then
|
1157
|
+
rm -rf "$rvm_ruby_src_path" # Especially when forced, we want to ensure the destination is missing.
|
1158
|
+
fi
|
827
1159
|
|
828
1160
|
mkdir -p "/tmp/rvm_src_$$"
|
829
1161
|
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
"$
|
844
|
-
|
845
|
-
|
1162
|
+
case "$rvm_archive_extension" in
|
1163
|
+
tar.gz|tgz)
|
1164
|
+
__rvm_run "extract" "gunzip < \"$rvm_archives_path/$rvm_ruby_package_file.$rvm_archive_extension\" | tar xf - -C /tmp/rvm_src_$$" "#extracting $rvm_ruby_package_file to $rvm_ruby_src_path"
|
1165
|
+
result=$?
|
1166
|
+
|
1167
|
+
if [[ "$result" -gt 0 ]] ; then
|
1168
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation." ; return $result
|
1169
|
+
fi
|
1170
|
+
;;
|
1171
|
+
zip)
|
1172
|
+
__rvm_run "extract" "unzip -q -o $rvm_archives_path/$rvm_ruby_package_file -d /tmp/rvm_src_$$"
|
1173
|
+
result=$?
|
1174
|
+
|
1175
|
+
if [[ "$result" -gt 0 ]] ; then
|
1176
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract $rvm_ruby_package_file. Aborting the installation."
|
1177
|
+
return $result
|
1178
|
+
fi
|
1179
|
+
;;
|
1180
|
+
tar.bz2)
|
1181
|
+
__rvm_run "extract" "bunzip2 < \"$rvm_archives_path/$rvm_ruby_package_file.$rvm_archive_extension\" | tar xf - -C /tmp/rvm_src_$$" "#extracting $rvm_ruby_package_file to $rvm_ruby_src_path"
|
1182
|
+
result=$?
|
1183
|
+
|
1184
|
+
if [[ "$result" -gt 0 ]] ; then
|
1185
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation."
|
1186
|
+
return $result
|
1187
|
+
fi
|
1188
|
+
;;
|
1189
|
+
*)
|
1190
|
+
"$rvm_scripts_path/log" "error" "Unknown archive format extension '$rvm_archive_extension'. Aborting the installation."
|
1191
|
+
return 1
|
1192
|
+
;;
|
1193
|
+
esac
|
846
1194
|
|
847
1195
|
mv "/tmp/rvm_src_$$/$(builtin cd /tmp/rvm_src_$$ ; ls)" "$rvm_ruby_src_path" ; rm -rf "/tmp/rvm_src_$$"
|
848
1196
|
|
@@ -857,104 +1205,160 @@ __rvm_fetch_ruby() {
|
|
857
1205
|
else
|
858
1206
|
|
859
1207
|
mkdir -p "$rvm_repo_path"
|
1208
|
+
|
860
1209
|
if [[ -n "$(echo "$rvm_ruby_url" | awk '/^git/')" ]] ; then
|
1210
|
+
|
861
1211
|
if [[ -d "$rvm_ruby_repo_path/.git" ]] ; then
|
1212
|
+
|
862
1213
|
builtin cd "$rvm_ruby_repo_path"
|
1214
|
+
|
863
1215
|
if [[ -z "$rvm_ruby_revision" ]] ; then
|
1216
|
+
|
864
1217
|
"$rvm_scripts_path/log" "info" "Pulling from $rvm_ruby_repo_url, this may take a while depending on your connection..."
|
1218
|
+
|
865
1219
|
git pull origin master --force
|
866
|
-
|
867
|
-
|
1220
|
+
|
1221
|
+
result=$?
|
1222
|
+
|
1223
|
+
if [[ "$result" -gt 0 ]] ; then
|
1224
|
+
"$rvm_scripts_path/log" "error" \
|
1225
|
+
"There has been an error while trying to update the source from the remote repository. Aborting the installation."
|
1226
|
+
return $result
|
868
1227
|
fi
|
1228
|
+
|
869
1229
|
else
|
870
|
-
if [[ -z "$rvm_ruby_sha" ]] ; then
|
1230
|
+
if [[ -z "${rvm_ruby_sha:-""}" ]] ; then
|
871
1231
|
git checkout HEAD
|
872
1232
|
else
|
873
1233
|
git checkout $(echo "$rvm_ruby_sha" | sed 's#^s##')
|
874
1234
|
fi
|
875
|
-
result=$?
|
876
|
-
|
1235
|
+
result=$?
|
1236
|
+
|
1237
|
+
if [[ "$result" -gt 0 ]] ; then
|
1238
|
+
"$rvm_scripts_path/log" "error" \
|
1239
|
+
"There has been an error while trying to checkout the source branch. Aborting the installation."
|
1240
|
+
return $result
|
877
1241
|
fi
|
878
1242
|
fi
|
1243
|
+
|
879
1244
|
else
|
880
1245
|
rm -rf "$rvm_ruby_repo_path"
|
1246
|
+
|
881
1247
|
rvm_ruby_repo_http_url="${rvm_ruby_repo_url//git:/http:/}"
|
1248
|
+
|
882
1249
|
"$rvm_scripts_path/log" "info" "Cloning from $rvm_ruby_repo_url, this may take a while depending on your connection..."
|
1250
|
+
|
883
1251
|
git clone --depth 1 "$rvm_ruby_repo_url" "$rvm_ruby_repo_path"
|
884
|
-
result=$?
|
885
|
-
|
1252
|
+
result=$?
|
1253
|
+
|
1254
|
+
if [[ "$result" -gt 0 ]] ; then
|
1255
|
+
"$rvm_scripts_path/log" "info" \
|
1256
|
+
"cloning from $rvm_ruby_repo_url failed, now attempting to clone from $rvm_ruby_repo_http_url, this may take a while depending on your connection..."
|
1257
|
+
|
886
1258
|
git clone "$rvm_ruby_repo_http_url" "$rvm_ruby_repo_path"
|
887
|
-
result=$?
|
888
|
-
|
1259
|
+
result=$?
|
1260
|
+
|
1261
|
+
if [[ "$result" -gt 0 ]] ; then
|
1262
|
+
"$rvm_scripts_path/log" "error" \
|
1263
|
+
"There has been an error while trying to fetch the repository. Aborting the installation."
|
1264
|
+
return $result
|
889
1265
|
fi
|
890
1266
|
fi
|
891
1267
|
fi
|
1268
|
+
|
892
1269
|
else
|
893
|
-
if [[ -n "$rvm_ruby_tag" ]] ; then
|
1270
|
+
if [[ -n "${rvm_ruby_tag:-""}" ]] ; then
|
894
1271
|
# TODO: Check if tag v is valid
|
895
1272
|
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/tags/$(echo "$rvm_ruby_tag" | sed 's/^t//')"}"
|
896
|
-
|
1273
|
+
|
1274
|
+
elif [[ -z "${rvm_ruby_version:-""}" && ${rvm_head_flag:-0} -eq 1 ]] ; then
|
897
1275
|
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/trunk"}"
|
898
|
-
|
899
|
-
|
1276
|
+
|
1277
|
+
elif [[ "${rvm_ruby_major_version:-""}" = "9" ]] ; then
|
1278
|
+
|
1279
|
+
if [[ -z "${rvm_ruby_minor_version:-""}" || "${rvm_ruby_minor_version:-""}" = 3 ]] ; then
|
900
1280
|
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/trunk"}"
|
1281
|
+
|
901
1282
|
else
|
902
1283
|
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/branches/ruby_${rvm_ruby_release_version}_${rvm_ruby_major_version}_${rvm_ruby_minor_version}"}"
|
903
1284
|
fi
|
904
|
-
|
1285
|
+
|
1286
|
+
elif [[ -z "${rvm_ruby_minor_version:-""}" || "${rvm_ruby_major_version:-""}.${rvm_ruby_minor_version:-""}" = "8.8" ]] ; then
|
905
1287
|
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/branches/ruby_${rvm_ruby_release_version}_${rvm_ruby_major_version}"}"
|
1288
|
+
|
906
1289
|
else
|
907
1290
|
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/branches/ruby_${rvm_ruby_release_version}_${rvm_ruby_major_version}_${rvm_ruby_minor_version}"}"
|
908
1291
|
fi
|
1292
|
+
|
909
1293
|
rvm_rev=""
|
910
|
-
|
1294
|
+
|
1295
|
+
if [[ -n "${rvm_ruby_revision:-""}" ]] ; then
|
911
1296
|
rvm_rev="-$rvm_ruby_revision"
|
912
1297
|
fi
|
913
1298
|
|
914
1299
|
if [[ -d "$rvm_ruby_repo_path/.svn" ]] ; then
|
1300
|
+
|
915
1301
|
builtin cd "$rvm_ruby_repo_path"
|
1302
|
+
|
916
1303
|
"$rvm_scripts_path/log" "info" "Updating ruby from $rvm_ruby_url"
|
1304
|
+
|
917
1305
|
__rvm_run "svn.switch" "svn switch $rvm_ruby_url"
|
1306
|
+
|
918
1307
|
__rvm_run "svn.update" "svn update"
|
919
|
-
|
1308
|
+
|
1309
|
+
if [[ -n "${rvm_rev:-""}" ]] ; then
|
920
1310
|
"$rvm_scripts_path/log" "info" "Checking out revision ${rvm_rev/-r/-r } from $rvm_ruby_url"
|
1311
|
+
|
921
1312
|
__rvm_run "svn.checkout" "svn update -q ${rvm_rev/-r/-r }"
|
922
1313
|
fi
|
923
1314
|
else
|
924
1315
|
rm -rf "$rvm_ruby_repo_path"
|
1316
|
+
|
925
1317
|
__rvm_run "svn.checkout" "svn checkout -q ${rvm_rev/-r/-r } $rvm_ruby_url $rvm_ruby_repo_path" "Downloading source from ${rvm_ruby_url}."
|
926
1318
|
fi
|
927
|
-
result=$?
|
928
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch / update the source. Aborting the installation." ; return $result
|
929
|
-
fi
|
1319
|
+
result=$?
|
930
1320
|
|
1321
|
+
if [[ "$result" -gt 0 ]] ; then
|
1322
|
+
"$rvm_scripts_path/log" "error" \
|
1323
|
+
"There has been an error while trying to fetch / update the source. Aborting the installation."
|
1324
|
+
return $result
|
1325
|
+
fi
|
931
1326
|
fi
|
1327
|
+
|
932
1328
|
"$rvm_scripts_path/log" "info" "Copying from repo to src path..."
|
1329
|
+
|
933
1330
|
rm -rf "$rvm_ruby_src_path"
|
1331
|
+
|
934
1332
|
cp -R "$rvm_ruby_repo_path" "$rvm_ruby_src_path"
|
935
1333
|
fi
|
936
1334
|
}
|
937
1335
|
|
938
1336
|
__rvm_check_default() {
|
939
|
-
|
940
|
-
|
941
|
-
|
1337
|
+
|
1338
|
+
local default_ruby_interpreter="$(rvm alias show default 2>/dev/null | awk -F"${rvm_gemset_separator:-"@"}" '{print $1}')"
|
1339
|
+
|
1340
|
+
local current_ruby_interpreter="$(echo "$rvm_ruby_string" | awk -F"${rvm_gemset_separator:-"@"}" '{print $1}')"
|
1341
|
+
|
1342
|
+
if [[ -n "$current_ruby_interpreter" && "$current_ruby_interpreter" = "$default_ruby_interpreter" ]]; then
|
942
1343
|
__rvm_run_with_env 'default.restore' 'system' 'rvm use system --default' 'Removing default ruby interpreter'
|
943
1344
|
fi
|
944
|
-
unset default_ruby_interpreter current_ruby_interpreter
|
945
1345
|
}
|
946
1346
|
|
947
1347
|
__rvm_uninstall_ruby() {
|
948
|
-
if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
|
949
1348
|
|
950
|
-
if [[ -
|
1349
|
+
if [[ ${rvm_ruby_selected_flag} -eq 0 ]] ; then __rvm_select ; fi
|
1350
|
+
|
1351
|
+
if [[ -n "${rvm_ruby_string:-""}" ]] ; then
|
1352
|
+
|
951
1353
|
for dir in "$rvm_rubies_path" ; do
|
952
1354
|
if [[ -d "$dir/$rvm_ruby_string" ]] ; then
|
953
1355
|
"$rvm_scripts_path/log" "info" "Removing $dir/$rvm_ruby_string..."
|
1356
|
+
|
954
1357
|
rm -rf $dir/$rvm_ruby_string
|
955
1358
|
else
|
956
1359
|
"$rvm_scripts_path/log" "info" "$dir/$rvm_ruby_string has already been removed."
|
957
1360
|
fi
|
1361
|
+
|
958
1362
|
if [[ -e "$rvm_bin_path/$rvm_ruby_string" ]] ; then
|
959
1363
|
rm -f "$rvm_bin_path/$rvm_ruby_string"
|
960
1364
|
fi
|
@@ -968,7 +1372,11 @@ __rvm_uninstall_ruby() {
|
|
968
1372
|
|
969
1373
|
else
|
970
1374
|
"$rvm_scripts_path/log" "fail" "Cannot uninstall unknown package '$rvm_ruby_string'"
|
971
|
-
fi
|
1375
|
+
fi
|
1376
|
+
|
1377
|
+
unset rvm_uninstall_flag
|
1378
|
+
|
1379
|
+
return 0
|
972
1380
|
}
|
973
1381
|
|
974
1382
|
__rvm_remove_ruby() {
|
@@ -1010,7 +1418,7 @@ __rvm_remove_gemsets() {
|
|
1010
1418
|
if [[ ${rvm_gems_flag:-0} -eq 1 ]] ; then
|
1011
1419
|
"$rvm_scripts_path/log" "info" "Removing $rvm_ruby_string gemsets..."
|
1012
1420
|
|
1013
|
-
gemsets="$rvm_gems_path/$rvm_ruby_string $(
|
1421
|
+
gemsets="$rvm_gems_path/$rvm_ruby_string $(builtin cd "${rvm_gems_path}"/ ; find * -type d -maxdepth 0 | awk '/'$rvm_ruby_string'@/')"
|
1014
1422
|
|
1015
1423
|
for gemset in $gemsets ; do
|
1016
1424
|
if [[ -d "$gemset" ]] ; then
|
@@ -1025,7 +1433,7 @@ __rvm_remove_wrappers() {
|
|
1025
1433
|
|
1026
1434
|
local wrappers wrapper
|
1027
1435
|
|
1028
|
-
wrappers="$rvm_wrappers_path/$rvm_ruby_string $(
|
1436
|
+
wrappers="$rvm_wrappers_path/$rvm_ruby_string $(builtin cd "$rvm_wrappers_path"/ ; find * -type f -maxdepth 0 2>/dev/null | awk '/'$rvm_ruby_string'@/')"
|
1029
1437
|
|
1030
1438
|
for wrapper in $wrappers ; do
|
1031
1439
|
rm -rf "$wrapper"
|
@@ -1039,7 +1447,7 @@ __rvm_remove_environments() {
|
|
1039
1447
|
|
1040
1448
|
local environments environment
|
1041
1449
|
|
1042
|
-
environments="$rvm_environments_path/$rvm_ruby_string $(
|
1450
|
+
environments="$rvm_environments_path/$rvm_ruby_string $(builtin cd "$rvm_environments_path"/ ; find * -type f -maxdepth 0 | awk '/'$rvm_ruby_string'@/')"
|
1043
1451
|
|
1044
1452
|
for environment in $environments ; do
|
1045
1453
|
rm -rf "$environment"
|
@@ -1073,7 +1481,8 @@ __rvm_remove_binaries() {
|
|
1073
1481
|
|
1074
1482
|
# Iterate over all binaries and check for symlinked wrappers etc.
|
1075
1483
|
local binary_name
|
1076
|
-
|
1484
|
+
|
1485
|
+
for binary_name in $(builtin cd "$rvm_bin_path" ; find * -type f -maxdepth 0); do
|
1077
1486
|
full_binary_path="$rvm_bin_path/$binary_name"
|
1078
1487
|
|
1079
1488
|
if [[ -L "$full_binary_path" ]] && "$rvm_scripts_path/match" "$(readlink "$full_binary_path")" "$rvm_ruby_string"; then
|
@@ -1085,17 +1494,24 @@ __rvm_remove_binaries() {
|
|
1085
1494
|
|
1086
1495
|
__rvm_post_install() {
|
1087
1496
|
if [[ "$rvm_ruby_interpreter" != "jruby" ]] ; then
|
1088
|
-
binaries=
|
1497
|
+
binaries=(${binaries:-"gem irb erb ri rdoc testrb rake"})
|
1498
|
+
|
1089
1499
|
"$rvm_scripts_path/log" "info" "#shebangs adjustment for $rvm_ruby_string ($binaries)."
|
1090
|
-
|
1500
|
+
|
1501
|
+
for binary in "${binaries[@]}" ; do
|
1502
|
+
|
1091
1503
|
if [[ -e "$rvm_ruby_home/bin/$binary" ]] || [[ -e "$rvm_ruby_src_path/bin/$binary" ]] ; then
|
1504
|
+
|
1092
1505
|
if [[ "$rvm_ruby_src_path" != "$rvm_ruby_home" ]] && [[ -f "$rvm_ruby_src_path/bin/$binary" ]] ; then
|
1093
1506
|
cp -f "$rvm_ruby_src_path/bin/$binary" "$rvm_ruby_home/bin/$binary"
|
1094
1507
|
elif [[ -f "$rvm_ruby_gem_home/bin/$binary" ]] ; then
|
1095
1508
|
cp -f "$rvm_ruby_gem_home/bin/$binary" "$rvm_ruby_home/bin/$binary"
|
1096
1509
|
fi
|
1510
|
+
|
1097
1511
|
__rvm_inject_gem_env "$rvm_ruby_home/bin/$binary"
|
1512
|
+
|
1098
1513
|
__rvm_inject_ruby_shebang "$rvm_ruby_home/bin/$binary"
|
1514
|
+
|
1099
1515
|
chmod +x "$rvm_ruby_home/bin/$binary"
|
1100
1516
|
fi
|
1101
1517
|
done ; unset binary binaries
|
@@ -1138,40 +1554,51 @@ __rvm_rubygems_setup() {
|
|
1138
1554
|
if [[ "$install" -eq 0 ]] ; then
|
1139
1555
|
# 1.9.X has it's own built-in gem command
|
1140
1556
|
__rvm_inject_ruby_shebang "$rvm_ruby_src_path/bin/gem"
|
1557
|
+
|
1141
1558
|
__rvm_inject_gem_env "$rvm_ruby_home/bin/gem"
|
1142
1559
|
|
1143
1560
|
cp "$rvm_ruby_src_path/bin/gem" "$rvm_ruby_home/bin/gem"
|
1144
1561
|
|
1145
1562
|
home="$GEM_HOME" ; path="$GEM_PATH" # Save
|
1563
|
+
|
1146
1564
|
for dir in $rvm_ruby_global_gems_path $rvm_ruby_gem_home ; do
|
1147
1565
|
export GEM_HOME="$dir" ; export GEM_PATH="$dir" ; export BUNDLE_PATH="$dir"
|
1148
1566
|
__rvm_run "rubygems.update" "$rvm_ruby_home/bin/gem update --system" "#rubygems update for $dir"
|
1149
1567
|
done ; unset home path dir
|
1568
|
+
|
1150
1569
|
GEM_HOME="$home" ; GEM_PATH="$path" ; BUNDLE_PATH="$home"
|
1151
1570
|
export GEM_HOME GEM_PATH BUNDLE_PATH
|
1152
1571
|
|
1153
1572
|
__rvm_inject_ruby_shebang "$rvm_ruby_home/bin/gem"
|
1573
|
+
|
1154
1574
|
__rvm_inject_gem_env "$rvm_ruby_home/bin/gem"
|
1155
1575
|
|
1156
1576
|
directory_name="$rvm_ruby_home/lib/ruby/gems"
|
1577
|
+
|
1157
1578
|
version_number="${rvm_ruby_release_version}.${rvm_ruby_major_version}"
|
1579
|
+
|
1158
1580
|
if [[ "$version_number" == "." ]]; then
|
1159
|
-
version_number="$(
|
1581
|
+
version_number="$(builtin cd "$directory_name" ; find * -type f -maxdepth 0 | \grep '^[[:digit:]].[[:digit:]]\(.[[:digit:]]\)\?' | head -n1)"
|
1582
|
+
|
1160
1583
|
if [[ -n "$version_number" ]]; then
|
1161
1584
|
ruby_lib_gem_path="${directory_name}/${version_number}"
|
1162
1585
|
else
|
1163
1586
|
ruby_lib_gem_path=""
|
1164
1587
|
fi
|
1588
|
+
|
1165
1589
|
else
|
1166
1590
|
ruby_lib_gem_path="${directory_name}/${version_number}"
|
1167
1591
|
fi
|
1592
|
+
|
1168
1593
|
unset directory_name version_number
|
1169
1594
|
|
1170
1595
|
elif [[ -n "$(echo "$rvm_ruby_interpreter" | awk '/^rbx|jruby/')" ]] ; then
|
1596
|
+
|
1171
1597
|
# Hands off rubygems for rbx & jruby
|
1172
1598
|
if [[ ${rvm_debug_flag:-0} -gt 0 ]] ; then
|
1173
1599
|
"$rvm_scripts_path/log" "debug" "Skipping rubygems update for $rvm_ruby_version"
|
1174
1600
|
fi
|
1601
|
+
|
1175
1602
|
ruby_lib_gem_path="$rvm_ruby_home/lib/ruby/gems/jruby"
|
1176
1603
|
|
1177
1604
|
else
|
@@ -1216,9 +1643,15 @@ __rvm_rubygems_setup() {
|
|
1216
1643
|
|
1217
1644
|
if [[ -n "$ruby_lib_gem_path" ]]; then
|
1218
1645
|
# Add ruby's gem path to ruby's lib direcotry.
|
1219
|
-
|
1220
|
-
if [[ -d "$ruby_lib_gem_path" ]] ; then
|
1646
|
+
|
1647
|
+
if [[ -d "$ruby_lib_gem_path" ]] ; then
|
1648
|
+
\rm -rf "$ruby_lib_gem_path"
|
1649
|
+
fi
|
1650
|
+
|
1651
|
+
mkdir -p ${ruby_lib_gem_path%\/*}
|
1652
|
+
|
1221
1653
|
ln -nfs "$rvm_ruby_gem_home" "$ruby_lib_gem_path"
|
1654
|
+
|
1222
1655
|
fi; unset ruby_lib_gem_path
|
1223
1656
|
|
1224
1657
|
if [[ -s "$rvm_ruby_src_path/bin/rdoc" ]] ; then
|
@@ -1266,45 +1699,67 @@ __rvm_actual_file() {
|
|
1266
1699
|
}
|
1267
1700
|
|
1268
1701
|
__rvm_manage_rubies() {
|
1269
|
-
|
1702
|
+
local manage_result=0
|
1703
|
+
local bin_line=""
|
1270
1704
|
|
1271
|
-
|
1272
|
-
|
1705
|
+
rvm_gemset_name=""
|
1706
|
+
rvm_ruby_selected_flag=0
|
1273
1707
|
|
1274
|
-
|
1708
|
+
rvm_ruby_gem_home="${rvm_ruby_gem_home:-""//${rvm_gemset_separator}*}"
|
1709
|
+
rvm_ruby_string="${rvm_ruby_string:-""//${rvm_gemset_separator}*}"
|
1710
|
+
|
1711
|
+
# Given list of ruby strings.
|
1712
|
+
if [[ -n "${rubies_string:-""}" ]] ;then
|
1275
1713
|
|
1276
|
-
|
1277
|
-
for rvm_ruby_string in $(echo "$rubies_string" | \tr ',' ' ') ; do
|
1714
|
+
for rvm_ruby_string in "${rubies_string//,/ }" ; do
|
1278
1715
|
current_manage_ruby_string="$rvm_ruby_string"
|
1716
|
+
|
1279
1717
|
eval "__rvm_${action}_ruby"
|
1280
1718
|
result="$?"
|
1719
|
+
|
1281
1720
|
if [[ "$result" -gt 0 && "$manage_result" = 0 ]]; then
|
1282
1721
|
manage_result="$result"
|
1283
1722
|
fi
|
1284
|
-
|
1723
|
+
|
1724
|
+
if [[ "$result" = 0 && "$action" = "install" ]] ; then
|
1725
|
+
__rvm_record_install "$current_manage_ruby_string"
|
1726
|
+
fi
|
1727
|
+
|
1285
1728
|
unset current_manage_ruby_string
|
1729
|
+
|
1286
1730
|
__rvm_unset_ruby_variables
|
1287
1731
|
done
|
1732
|
+
|
1288
1733
|
else # all
|
1734
|
+
|
1289
1735
|
if [[ "$action" != "install" && "$action" != "remove" && "$action" != "uninstall" ]] ; then
|
1290
|
-
|
1736
|
+
|
1737
|
+
local ruby_string
|
1738
|
+
while read -r ruby_string
|
1291
1739
|
do # Keep this on second line damnit!
|
1292
|
-
|
1293
|
-
|
1294
|
-
rvm_ruby_string="$
|
1740
|
+
|
1741
|
+
if [[ -x "$ruby_string" ]] ; then
|
1742
|
+
rvm_ruby_string="$ruby_string"
|
1743
|
+
|
1295
1744
|
eval "__rvm_${action}_ruby"
|
1296
1745
|
result="$?"
|
1746
|
+
|
1297
1747
|
if [[ "$result" -gt 0 && "$manage_result" = 0 ]]; then
|
1298
1748
|
manage_result="$result"
|
1299
1749
|
fi
|
1750
|
+
|
1300
1751
|
# record as current_manage_string to prevent it being overridden.
|
1301
|
-
[[ "$result" = 0 && "$action" = "install" ]]
|
1302
|
-
|
1752
|
+
if [[ "$result" = 0 && "$action" = "install" ]] ; then
|
1753
|
+
__rvm_record_install "$ruby_string"
|
1754
|
+
fi
|
1755
|
+
|
1303
1756
|
__rvm_unset_ruby_variables
|
1304
1757
|
fi
|
1305
|
-
done < <(
|
1758
|
+
done < <(builtin cd "$rvm_rubies_path" ; find * -type d -maxdepth 0 2> /dev/null)
|
1759
|
+
|
1306
1760
|
else
|
1307
|
-
"$rvm_scripts_path/log" "warn"
|
1761
|
+
"$rvm_scripts_path/log" "warn" \
|
1762
|
+
'Really? '"$action"' all? See "rvm list known" and limit the selection to something more sane please :)'
|
1308
1763
|
fi
|
1309
1764
|
fi
|
1310
1765
|
|