rvm 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/VERSION.yml +1 -1
- data/rvm.gemspec +3 -2
- data/scripts/alias +49 -27
- data/scripts/base +21 -6
- data/scripts/cli +159 -84
- data/scripts/default +61 -0
- data/scripts/docs +17 -15
- data/scripts/env +7 -5
- data/scripts/fetch +10 -10
- data/scripts/gemsets +17 -8
- data/scripts/hook +1 -1
- data/scripts/info +73 -54
- data/scripts/initialize +2 -4
- data/scripts/list +12 -8
- data/scripts/log +1 -1
- data/scripts/manage +317 -264
- data/scripts/notes +84 -38
- data/scripts/package +50 -39
- data/scripts/patches +1 -1
- data/scripts/repair +10 -9
- data/scripts/rubygems +3 -3
- data/scripts/selector +45 -58
- data/scripts/set +28 -18
- data/scripts/snapshot +42 -37
- data/scripts/tools +2 -2
- data/scripts/utility +91 -99
- data/scripts/wrapper +11 -8
- metadata +5 -4
data/scripts/initialize
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
if [[ "$rvm_selfcontained" = "0" ]] ; then
|
3
|
+
if [[ ${rvm_selfcontained:-1} -eq 0 ]] ; then
|
6
4
|
rvm_bin_path="${rvm_bin_path:-"${rvm_prefix}bin"}"
|
7
5
|
rvm_man_path="${rvm_man_path:-"${rvm_prefix}share/man"}"
|
8
6
|
rvm_rc_files="${rvm_rc_files:-"/etc/profile /etc/zshenv"}"
|
@@ -12,7 +10,7 @@ else
|
|
12
10
|
rvm_rc_files="${rvm_rc_files:-"$HOME/.bash_profile $HOME/.bashrc $HOME/.zshenv"}"
|
13
11
|
fi
|
14
12
|
|
15
|
-
[[ -n "$rvm_archflags" ]] && rvm_make_flags_flag=1
|
13
|
+
[[ -n "${rvm_archflags:-""}" ]] && rvm_make_flags_flag=1
|
16
14
|
|
17
15
|
rvm_archives_path="${rvm_archives_path:-"$rvm_path/archives"}"
|
18
16
|
rvm_src_path="${rvm_src_path:-"$rvm_path/src"}"
|
data/scripts/list
CHANGED
@@ -6,7 +6,7 @@ rvm_base_except="selector"
|
|
6
6
|
source "$rvm_scripts_path/base"
|
7
7
|
|
8
8
|
list_gemsets() {
|
9
|
-
if [[ "$1" = "strings" ]]; then
|
9
|
+
if [[ "${1:-""}" = "strings" ]]; then
|
10
10
|
list_gemset_strings
|
11
11
|
return 0
|
12
12
|
fi
|
@@ -57,14 +57,19 @@ list_gemsets() {
|
|
57
57
|
}
|
58
58
|
|
59
59
|
list_default() {
|
60
|
-
if [[ "$
|
60
|
+
if [[ "${args[0]:-""}" = "string" ]] ; then
|
61
61
|
"$rvm_scripts_path/alias" show default 2>/dev/null | awk -F"$rvm_gemset_separator" '{print $1}' | xargs basename --
|
62
|
+
|
62
63
|
else
|
63
64
|
if [[ -L "$rvm_rubies_path/default" ]]; then
|
65
|
+
|
64
66
|
version=$("$rvm_scripts_path/alias" show default 2>/dev/null | awk -F"$rvm_gemset_separator" '{print $1}' | xargs basename --)
|
67
|
+
|
65
68
|
if [[ ! -z "$version" ]] ; then
|
66
69
|
printf "\n\nDefault Ruby (for new shells)\n"
|
70
|
+
|
67
71
|
string="[ $(file "$rvm_rubies_path/$version/bin/ruby" | awk '/x86.64/ {print "x86_64"} /386/ {print "i386"} /ppc/ {print "ppc"}' | \tr "\n" ' ')]"
|
72
|
+
|
68
73
|
if [[ $rvm_pretty_print -eq 1 ]] ; then
|
69
74
|
printf "\n $(tput setaf 2)$version$(tput sgr0) $string\n"
|
70
75
|
else
|
@@ -106,7 +111,7 @@ list_known_strings() {
|
|
106
111
|
}
|
107
112
|
|
108
113
|
list_known() {
|
109
|
-
if [[ "$1" = "strings" ]]; then
|
114
|
+
if [[ "${1:-""}" = "strings" ]]; then
|
110
115
|
list_known_strings
|
111
116
|
return 0
|
112
117
|
fi
|
@@ -124,8 +129,7 @@ list_rubies_strings() {
|
|
124
129
|
}
|
125
130
|
|
126
131
|
list_rubies() {
|
127
|
-
|
128
|
-
if [[ "$1" = "strings" ]]; then list_rubies_strings ; return 0 ; fi
|
132
|
+
if [[ "${1:-""}" = "strings" ]]; then list_rubies_strings ; return 0 ; fi
|
129
133
|
|
130
134
|
current_ruby="$(__rvm_environment_identifier | awk -F"$rvm_gemset_separator" '{print $1}')"
|
131
135
|
|
@@ -171,8 +175,8 @@ list_rubies() {
|
|
171
175
|
# Display the rubies, indicate their architecture and indicate which is currently used.
|
172
176
|
# This is not meant to be used with scripting. This is for interactive mode usage only.
|
173
177
|
args=($*)
|
174
|
-
action="${args[0]}"
|
175
|
-
args
|
178
|
+
action="${args[0]:-""}"
|
179
|
+
args=${args[@]:1} # Strip trailing / leading / extra spacing.
|
176
180
|
|
177
181
|
if [[ "known" = "$action" ]] ; then
|
178
182
|
list_known
|
@@ -192,7 +196,7 @@ else # help
|
|
192
196
|
printf "
|
193
197
|
Usage:
|
194
198
|
|
195
|
-
rvm list {known,gemsets,default,rubies,strings,known_strings}
|
199
|
+
rvm list {known,gemsets,default [string],rubies,strings,known_strings}
|
196
200
|
|
197
201
|
"
|
198
202
|
false
|
data/scripts/log
CHANGED
@@ -11,7 +11,7 @@ message="${1//%/%%}"
|
|
11
11
|
|
12
12
|
rvm_pretty_print=${rvm_pretty_print:-0}
|
13
13
|
if [[ $rvm_pretty_print -eq 0 ]] ; then
|
14
|
-
if [[ $rvm_verbose_flag -
|
14
|
+
if [[ $rvm_verbose_flag -gt 0 && -n "$level" ]] ; then
|
15
15
|
message="$level: $message"
|
16
16
|
fi
|
17
17
|
|
data/scripts/manage
CHANGED
@@ -1,25 +1,23 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
original_ruby_version=$rvm_ruby_version
|
6
|
-
original_ruby_string=$rvm_ruby_string
|
3
|
+
original_ruby_version=${rvm_ruby_version:-""}
|
4
|
+
original_ruby_string=${rvm_ruby_string:-""}
|
7
5
|
|
8
6
|
source "$rvm_scripts_path/base"
|
9
7
|
source "$rvm_scripts_path/patches"
|
10
8
|
|
11
9
|
__rvm_check_for_clang() {
|
12
|
-
if [[ -n "$rvm_clang_flag" ]] && ! command -v clang >/dev/null ; then
|
13
|
-
"$rvm_scripts_path/log" "fail" "
|
10
|
+
if [[ -n "${rvm_clang_flag:-""}" ]] && ! command -v clang >/dev/null ; then
|
11
|
+
"$rvm_scripts_path/log" "fail" "\nYou passed the --clang option and clang is not in your path. \nPlease try again or do not use --clang.\n"
|
14
12
|
return 1
|
15
13
|
fi
|
16
14
|
}
|
17
15
|
|
18
16
|
# Checks for bison, returns zero iff it is found
|
19
17
|
__rvm_check_for_bison() {
|
20
|
-
if [[
|
18
|
+
if [[ ${rvm_head_flag:-0} -gt 0 ]]; then
|
21
19
|
if ! command -v bison >/dev/null ; then
|
22
|
-
"$rvm_scripts_path/log" "fail" "
|
20
|
+
"$rvm_scripts_path/log" "fail" "\nbison is not available in your path. \nPlease ensure bison is installed before compiling from head.\n"
|
23
21
|
return 1
|
24
22
|
fi
|
25
23
|
fi
|
@@ -30,11 +28,12 @@ __rvm_check_for_bison() {
|
|
30
28
|
__rvm_current_patch_names() {
|
31
29
|
# TODO: Lookup default patches on rvm_ruby_string heirarchy.
|
32
30
|
local separator="%"
|
33
|
-
local patches="$rvm_patch_names default"
|
34
|
-
|
31
|
+
local patches="${rvm_patch_names:-""} default"
|
32
|
+
|
33
|
+
for patch_name in $(echo ${patches//,/ }); do
|
35
34
|
local level=1
|
36
35
|
local name="$patch_name"
|
37
|
-
if echo "$name" |
|
36
|
+
if echo "$name" | grep -q "$separator"; then
|
38
37
|
level="${name/*${separator}/}"
|
39
38
|
name="${name//${separator}*/}"
|
40
39
|
fi
|
@@ -48,56 +47,67 @@ __rvm_apply_patches() {
|
|
48
47
|
local patch_level_separator="%"
|
49
48
|
local patch_fuzziness="25"
|
50
49
|
local patch_level=1
|
51
|
-
source_directory="${1:-"$rvm_ruby_src_path"}"
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
full_patch_path="$(__rvm_lookup_full_patch_path "$patch_name")"
|
63
|
-
# Expand paths, and for those we found we then apply the patches.
|
64
|
-
if [[ -n "$full_patch_path" ]]; then
|
65
|
-
if [[ -f "$full_patch_path" ]] ; then
|
66
|
-
__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)"
|
67
|
-
# Detect failed patches
|
68
|
-
[[ "$?" -gt 0 ]] && patch_result=1
|
50
|
+
local source_directory="${1:-"$rvm_ruby_src_path"}"
|
51
|
+
(
|
52
|
+
builtin cd "$source_directory"
|
53
|
+
|
54
|
+
patches="$(__rvm_current_patch_names | __rvm_strip)"
|
55
|
+
for patch_name in $(echo $patches); do
|
56
|
+
# If set, extract the patch level from the patch name.
|
57
|
+
patch_level=1
|
58
|
+
if echo "$patch_name" | \grep -q "$patch_level_separator"; then
|
59
|
+
patch_level=${patch_name//*${patch_level_separator}/}
|
60
|
+
patch_name="${patch_name//${patch_level_separator}*/}"
|
69
61
|
fi
|
70
|
-
|
71
|
-
"$
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
62
|
+
|
63
|
+
full_patch_path="$(__rvm_lookup_full_patch_path "$patch_name")"
|
64
|
+
|
65
|
+
# Expand paths, and for those we found we then apply the patches.
|
66
|
+
if [[ -n "${full_patch_path:-""}" ]]; then
|
67
|
+
|
68
|
+
if [[ -f "$full_patch_path" ]] ; then
|
69
|
+
__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
|
+
# Detect failed patches
|
71
|
+
[[ $? -gt 0 ]] && patch_result=1
|
72
|
+
fi
|
73
|
+
else
|
74
|
+
"$rvm_scripts_path/log" "warn" "Patch '$patch_name' not found."
|
75
|
+
patch_result=1
|
76
|
+
fi
|
77
|
+
done
|
78
|
+
)
|
79
|
+
unset patch_name full_patch_path patch_level
|
76
80
|
return $patch_result
|
77
81
|
}
|
78
82
|
|
79
83
|
__rvm_install_source() {
|
80
|
-
[[
|
84
|
+
[[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] && __rvm_select
|
81
85
|
|
82
|
-
if [[ "$rvm_ruby_string"
|
86
|
+
if [[ "${rvm_ruby_string:-""}" =~ "-head" ]] ; then
|
83
87
|
# Ensure we have a base ruby.
|
84
88
|
__rvm_ensure_has_18_compat_ruby || return 1
|
85
89
|
fi
|
86
90
|
|
87
|
-
"$rvm_scripts_path/log" "info" "
|
88
|
-
|
89
|
-
|
91
|
+
"$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
|
+
|
93
|
+
builtin cd "$rvm_src_path"
|
94
|
+
|
95
|
+
if [[ ${rvm_force_flag:-0} -eq 1 ]] ; then
|
96
|
+
for directory in "$rvm_ruby_home" "$rvm_ruby_src_path" ; do
|
97
|
+
[[ -d "$directory" ]] && rm -rf "$directory"
|
98
|
+
done
|
99
|
+
fi
|
90
100
|
|
91
101
|
result=0
|
92
102
|
__rvm_fetch_ruby
|
93
103
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
94
|
-
"$rvm_scripts_path/log" "error" "There has been an error fetching the ruby interpreter. Aborting the installation." ;
|
104
|
+
"$rvm_scripts_path/log" "error" "There has been an error fetching the ruby interpreter. Aborting the installation." ; return $result
|
95
105
|
fi
|
96
106
|
|
97
107
|
builtin cd "$rvm_ruby_src_path"
|
98
108
|
|
99
109
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
100
|
-
"$rvm_scripts_path/log" "error" "There has been an error, source directory is missing. Did the download or extraction fail? Aborting the installation." ;
|
110
|
+
"$rvm_scripts_path/log" "error" "There has been an error, source directory is missing. Did the download or extraction fail? Aborting the installation." ; return $result
|
101
111
|
fi
|
102
112
|
|
103
113
|
if [[ -d "${rvm_path}/usr" ]] ; then
|
@@ -112,7 +122,7 @@ __rvm_install_source() {
|
|
112
122
|
return $result
|
113
123
|
fi
|
114
124
|
|
115
|
-
if [[ -z "$rvm_ruby_configure" ]] && [[ ! -s "$rvm_ruby_src_path/configure" ]] ; then
|
125
|
+
if [[ -z "${rvm_ruby_configure:-""}" ]] && [[ ! -s "$rvm_ruby_src_path/configure" ]] ; then
|
116
126
|
if command -v autoconf > /dev/null ; then
|
117
127
|
__rvm_run "autoconf" "autoconf" "Running autoconf"
|
118
128
|
else
|
@@ -120,10 +130,10 @@ __rvm_install_source() {
|
|
120
130
|
fi
|
121
131
|
fi
|
122
132
|
|
123
|
-
if [[ -n "$rvm_ruby_configure" ]] ; then
|
133
|
+
if [[ -n "${rvm_ruby_configure:-""}" ]] ; then
|
124
134
|
__rvm_run "configure" "$rvm_ruby_configure"
|
125
135
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
126
|
-
"$rvm_scripts_path/log" "error" "There has been an error while configuring. Aborting the installation." ;
|
136
|
+
"$rvm_scripts_path/log" "error" "There has been an error while configuring. Aborting the installation." ; return $result
|
127
137
|
fi
|
128
138
|
elif [[ -s ./configure ]] ; then
|
129
139
|
# REE stores configure flags differently for head vs. the distributed release.
|
@@ -133,39 +143,37 @@ __rvm_install_source() {
|
|
133
143
|
|
134
144
|
# On 1.9.2, we manually set the --with-baseruby option
|
135
145
|
# to point to an expanded path.
|
136
|
-
if [[ "$rvm_ruby_string" = "ruby-1.9.2-head" ]] ; then
|
146
|
+
if [[ "${rvm_ruby_string:-""}" = "ruby-1.9.2-head" ]] ; then
|
137
147
|
local compatible_baseruby="$rvm_wrappers_path/$(__rvm_18_compat_ruby)/ruby"
|
138
148
|
if [[ -x "$compatible_baseruby" ]] ; then
|
139
149
|
configure_parameters="--with-baseruby=$compatible_baseruby"
|
140
150
|
fi
|
141
151
|
fi
|
142
152
|
|
143
|
-
local configure_command="./configure --prefix=$rvm_ruby_home $db_configure_flags $rvm_ruby_configure_flags $configure_parameters"
|
144
|
-
__rvm_run "configure" "$configure_command" "
|
153
|
+
local configure_command="./configure --prefix=$rvm_ruby_home ${db_configure_flags:-""} ${rvm_ruby_configure_flags:-""} ${configure_parameters:-""}"
|
154
|
+
__rvm_run "configure" "$configure_command" "#configuring $rvm_ruby_string"
|
145
155
|
unset configure_parameters db_configure_flags
|
146
156
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
147
|
-
"$rvm_scripts_path/log" "error" "There has been an error while running configure. Aborting the installation." ;
|
157
|
+
"$rvm_scripts_path/log" "error" "There has been an error while running configure. Aborting the installation." ; return $result
|
148
158
|
fi
|
149
159
|
else
|
150
160
|
"$rvm_scripts_path/log" "error" "Skipping configure step, 'configure' does not exist, did autoconf not run successfully?"
|
151
161
|
fi
|
152
162
|
|
153
163
|
rvm_ruby_make=${rvm_ruby_make:-"make"}
|
154
|
-
__rvm_run "make" "$rvm_ruby_make $rvm_make_flags" "
|
164
|
+
__rvm_run "make" "$rvm_ruby_make ${rvm_make_flags:-""}" "#compiling $rvm_ruby_string"
|
155
165
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
156
|
-
"$rvm_scripts_path/log" "error" "There has been an error while running make. Aborting the installation." ;
|
166
|
+
"$rvm_scripts_path/log" "error" "There has been an error while running make. Aborting the installation." ; return $result
|
157
167
|
fi
|
158
168
|
|
159
169
|
if [[ -d .ext/rdoc ]] ; then \rm -rf .ext/rdoc ; fi
|
160
170
|
|
161
171
|
rvm_ruby_make_install=${rvm_ruby_make_install:-"make install"}
|
162
|
-
__rvm_run "install" "$rvm_ruby_make_install" "
|
172
|
+
__rvm_run "install" "$rvm_ruby_make_install" "#installing $rvm_ruby_string"
|
163
173
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
164
|
-
"$rvm_scripts_path/log" "error" "There has been an error while running make install. Aborting the installation." ;
|
174
|
+
"$rvm_scripts_path/log" "error" "There has been an error while running make install. Aborting the installation." ; return $result
|
165
175
|
fi
|
166
176
|
|
167
|
-
"$rvm_scripts_path/log" "info" "Installation of $rvm_ruby_string is complete."
|
168
|
-
|
169
177
|
export GEM_HOME="$rvm_ruby_gem_home"
|
170
178
|
export GEM_PATH="$rvm_ruby_gem_path"
|
171
179
|
export BUNDLE_PATH="$rvm_ruby_gem_home"
|
@@ -174,62 +182,69 @@ __rvm_install_source() {
|
|
174
182
|
__rvm_bin_script
|
175
183
|
__rvm_run "chmod.bin" "chmod +x $rvm_ruby_home/bin/*"
|
176
184
|
__rvm_post_install
|
177
|
-
|
185
|
+
|
186
|
+
"$rvm_scripts_path/log" "info" "#complete install of $rvm_ruby_string"
|
178
187
|
}
|
179
188
|
|
180
189
|
__rvm_install_ruby() {
|
181
190
|
|
182
|
-
if [[
|
191
|
+
if [[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] ; then __rvm_select ; fi
|
183
192
|
|
184
|
-
if [[ -n "$RUBYOPT" ]] ; then ruby_options="$RUBYOPT" ;
|
193
|
+
if [[ -n "${RUBYOPT:-""}" ]] ; then ruby_options="$RUBYOPT" ; fi
|
194
|
+
unset RUBYOPT
|
185
195
|
|
186
196
|
# Check for clang if the flag is set
|
187
197
|
__rvm_check_for_clang
|
188
198
|
local result="$?"
|
189
|
-
[[
|
199
|
+
[[ $result -gt 0 ]] && return $result
|
190
200
|
|
191
201
|
case "$rvm_ruby_interpreter" in
|
192
202
|
macruby)
|
193
203
|
if [[ "Darwin" = "$(uname)" ]] ; then
|
204
|
+
|
194
205
|
if [[ "$rvm_head_flag" = 1 ]] ; then
|
206
|
+
|
195
207
|
if [[ -n "$rvm_llvm_flag" ]] ; then
|
196
208
|
"$rvm_scripts_path/package" llvm install
|
197
209
|
fi
|
210
|
+
|
198
211
|
macruby_path="/usr/local/bin"
|
199
212
|
# TODO: configure & make variables should be set here.
|
200
213
|
rvm_ruby_configure=" true "
|
201
214
|
rvm_ruby_make="rake"
|
202
215
|
rvm_ruby_make_install="sudo rake install"
|
203
|
-
__rvm_db "${rvm_ruby_interpreter}_repo_url" "
|
204
|
-
rvm_ruby_repo_url=$
|
216
|
+
__rvm_db "${rvm_ruby_interpreter}_repo_url" "rvm_ruby_url"
|
217
|
+
rvm_ruby_repo_url=$rvm_ruby_url
|
205
218
|
__rvm_install_source $*
|
206
219
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
207
220
|
"$rvm_scripts_path/log" "error" "There has been an error while trying to install from source. Aborting the installation." ; return $result
|
208
221
|
fi
|
222
|
+
|
209
223
|
elif [[ "nightly" = "$rvm_ruby_version" ]] ; then
|
210
224
|
macruby_path="/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/bin"
|
211
225
|
# TODO: Separated nightly from head.
|
212
226
|
"$rvm_scripts_path/log" "info" "Retrieving the latest nightly macruby build..."
|
213
|
-
"$rvm_scripts_path/fetch" "$
|
227
|
+
"$rvm_scripts_path/fetch" "$rvm_ruby_url"
|
214
228
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
215
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ;
|
229
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
216
230
|
fi
|
217
231
|
mv "$rvm_archives_path/macruby_nightly-latest.pkg" "$rvm_archives_path/macruby_nightly.pkg"
|
218
232
|
__rvm_run "macruby/extract" "sudo /usr/sbin/installer -pkg '$rvm_archives_path/macruby_nightly.pkg' -target '/'"
|
219
|
-
|
233
|
+
mkdir -p "$rvm_ruby_home/bin"
|
234
|
+
|
220
235
|
else
|
221
236
|
macruby_path="/Library/Frameworks/MacRuby.framework/Versions/${rvm_ruby_version}/usr/bin"
|
222
237
|
# TODO: Separated nightly from head.
|
223
238
|
"$rvm_scripts_path/log" "info" "Retrieving MacRuby ${rvm_ruby_version} ..."
|
224
|
-
"$rvm_scripts_path/fetch" "$
|
239
|
+
"$rvm_scripts_path/fetch" "$rvm_ruby_url"
|
225
240
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
226
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ;
|
241
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
227
242
|
fi
|
228
|
-
|
229
|
-
|
243
|
+
mkdir -p $rvm_ruby_src_path
|
244
|
+
unzip -o -j "$rvm_archives_path/$rvm_ruby_package_file" "MacRuby ${rvm_ruby_version}/MacRuby ${rvm_ruby_version}.pkg" -d "$rvm_ruby_src_path"
|
230
245
|
mv "$rvm_ruby_src_path/MacRuby ${rvm_ruby_version}.pkg" "$rvm_ruby_src_path/$rvm_ruby_string.pkg"
|
231
246
|
__rvm_run "macruby/extract" "sudo /usr/sbin/installer -pkg '$rvm_ruby_src_path/$rvm_ruby_string.pkg' -target '/'"
|
232
|
-
|
247
|
+
mkdir -p "$rvm_ruby_home/bin"
|
233
248
|
fi
|
234
249
|
|
235
250
|
binaries=(erb gem irb rake rdoc ri ruby testrb)
|
@@ -248,7 +263,7 @@ RubyWrapper
|
|
248
263
|
)
|
249
264
|
|
250
265
|
file_name="$rvm_ruby_home/bin/$binary_name"
|
251
|
-
|
266
|
+
rm -f "$file_name"
|
252
267
|
echo "$ruby_wrapper" > "$file_name"
|
253
268
|
if [[ -f "$file_name" ]] ; then chmod +x $file_name ; fi
|
254
269
|
if [[ "$binary_name" = "ruby" ]] ; then
|
@@ -264,30 +279,36 @@ RubyWrapper
|
|
264
279
|
|
265
280
|
ree)
|
266
281
|
if [[ -n "$(echo "$rvm_ruby_version" | awk '/^1\.8/')" ]] && [[ $rvm_head_flag -eq 0 ]] ; then
|
267
|
-
|
282
|
+
|
283
|
+
rvm_ruby_url="$(__rvm_db "ree_${rvm_ruby_version}_url")/$rvm_ruby_package_file.tar.gz"
|
284
|
+
|
268
285
|
"$rvm_scripts_path/log" "info" "Installing Ruby Enterprise Edition from source to: $rvm_ruby_home"
|
269
|
-
|
270
|
-
|
286
|
+
|
287
|
+
builtin cd "$rvm_src_path"
|
288
|
+
if [[ ${rvm_force_flag:-0} -eq 0 && -d "$rvm_ruby_src_path" && ! -x "$rvm_ruby_src_path/installer" ]] ; then
|
271
289
|
"$rvm_scripts_path/log" "It appears that the archive has already been extracted. Skipping extract (use --force to force re-download and extract)."
|
290
|
+
|
272
291
|
else
|
273
|
-
"$rvm_scripts_path/log" "
|
274
|
-
|
292
|
+
"$rvm_scripts_path/log" "#fetching $rvm_ruby_package_file"
|
293
|
+
|
294
|
+
"$rvm_scripts_path/fetch" "$rvm_ruby_url"
|
275
295
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
276
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ;
|
296
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
277
297
|
fi
|
278
298
|
|
279
|
-
|
280
|
-
__rvm_run "extract" "gunzip < \"$rvm_archives_path/$rvm_ruby_package_file.$rvm_archive_extension\" | tar xf - -C $rvm_src_path" "
|
299
|
+
rm -rf "$rvm_ruby_src_path"
|
300
|
+
__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"
|
281
301
|
|
282
302
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
283
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation." ;
|
303
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation." ; return $result
|
284
304
|
fi
|
285
305
|
|
286
306
|
mv "$rvm_src_path/$rvm_ruby_package_file" "$rvm_ruby_src_path"
|
287
307
|
fi
|
308
|
+
|
288
309
|
builtin cd "$rvm_ruby_src_path"
|
289
310
|
|
290
|
-
|
311
|
+
mkdir -p "${rvm_ruby_home}/lib/ruby/gems/1.8/gems"
|
291
312
|
if [[ -n "$rvm_ruby_configure_flags" ]] ; then
|
292
313
|
rvm_ruby_configure_flags="${rvm_ruby_configure_flags//--/-c --}"
|
293
314
|
fi
|
@@ -300,12 +321,12 @@ RubyWrapper
|
|
300
321
|
|
301
322
|
__rvm_apply_patches "$rvm_ruby_src_path/source"
|
302
323
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
303
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to apply patches to ree. Aborting the installation." ;
|
324
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to apply patches to ree. Aborting the installation." ; return $result
|
304
325
|
fi
|
305
326
|
|
306
|
-
__rvm_run "install" "./installer -a $rvm_rubies_path/$rvm_ruby_string $rvm_ree_options $db_configure_flags $rvm_ruby_configure_flags" "
|
327
|
+
__rvm_run "install" "./installer -a $rvm_rubies_path/$rvm_ruby_string $rvm_ree_options $db_configure_flags $rvm_ruby_configure_flags" "#installing $rvm_ruby_string"
|
307
328
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
308
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to run the ree installer. Aborting the installation." ;
|
329
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to run the ree installer. Aborting the installation." ; return $result
|
309
330
|
fi
|
310
331
|
|
311
332
|
chmod +x "$rvm_ruby_home"/bin/*
|
@@ -314,22 +335,21 @@ RubyWrapper
|
|
314
335
|
__rvm_irbrc
|
315
336
|
__rvm_bin_script
|
316
337
|
__rvm_post_install
|
317
|
-
__rvm_pushpop
|
318
338
|
else
|
319
|
-
__rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_version}_repo_url" "
|
320
|
-
if [[ -z "$
|
339
|
+
__rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_version}_repo_url" "rvm_ruby_url"
|
340
|
+
if [[ -z "$rvm_ruby_url" ]] ; then
|
321
341
|
"$rvm_scripts_path/log" "fail" "rvm does not know the rvm repo url for '${rvm_ruby_interpreter}_${rvm_ruby_version}'"
|
322
342
|
result=1
|
323
343
|
else
|
324
|
-
rvm_ruby_repo_url="$
|
325
|
-
if [[
|
344
|
+
rvm_ruby_repo_url="$rvm_ruby_url"
|
345
|
+
if [[ ${rvm_make_flags_flag:-0} -eq 1 ]] ; then __rvm_make_flags ; fi
|
326
346
|
__rvm_install_source $*
|
327
347
|
fi
|
328
348
|
fi
|
329
349
|
;;
|
330
350
|
|
331
351
|
rbx|rubinius)
|
332
|
-
"$rvm_scripts_path/log" "info" "
|
352
|
+
"$rvm_scripts_path/log" "info" "#dependency installation"
|
333
353
|
|
334
354
|
# Ensure we have a 1.8.7 compatible ruby installed.
|
335
355
|
__rvm_ensure_has_18_compat_ruby || return 1
|
@@ -342,26 +362,26 @@ RubyWrapper
|
|
342
362
|
builtin hash -r
|
343
363
|
|
344
364
|
if [[ -n "$(echo $rvm_ruby_version | awk '/^1\.0/')" ]] && [[ $rvm_head_flag -eq 0 ]] ; then
|
345
|
-
"$rvm_scripts_path/log" "info" "
|
346
|
-
"$rvm_scripts_path/fetch" "$
|
365
|
+
"$rvm_scripts_path/log" "info" "#downloading $rvm_ruby_package_file, this may take a while depending on your connection..."
|
366
|
+
"$rvm_scripts_path/fetch" "$rvm_ruby_url"
|
347
367
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
348
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ;
|
368
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
349
369
|
fi
|
350
370
|
__rvm_run "extract" "gunzip < \"$rvm_archives_path/$(basename $rvm_ruby_package_file)\" | tar xf - -C $rvm_src_path" "Extracting $rvm_ruby_package_file ..."
|
351
371
|
|
352
372
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
353
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation." ;
|
373
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation." ; return $result
|
354
374
|
fi
|
355
375
|
|
356
376
|
# Remove the left over folder first.
|
357
|
-
|
377
|
+
rm -rf "$rvm_ruby_src_path"
|
358
378
|
mv "$rvm_src_path/rubinius-${rvm_ruby_version}" "$rvm_ruby_src_path"
|
359
379
|
else
|
360
380
|
__rvm_db "rubinius_repo_url" "rvm_ruby_repo_url"
|
361
381
|
#rvm_ruby_home="$rvm_rubies_path/$rvm_ruby_interpreter-$rvm_ruby_version"
|
362
382
|
__rvm_fetch_from_github "rbx"
|
363
383
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
364
|
-
"$rvm_scripts_path/log" "error" "There has been an error while fetching the rbx git repo. Aborting the installation." ;
|
384
|
+
"$rvm_scripts_path/log" "error" "There has been an error while fetching the rbx git repo. Aborting the installation." ; return $result
|
365
385
|
fi
|
366
386
|
fi
|
367
387
|
|
@@ -369,7 +389,7 @@ RubyWrapper
|
|
369
389
|
|
370
390
|
__rvm_apply_patches
|
371
391
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
372
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to apply patches to rubinius. Aborting the installation." ;
|
392
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to apply patches to rubinius. Aborting the installation." ; return $result
|
373
393
|
fi
|
374
394
|
|
375
395
|
__rvm_db "${rvm_ruby_interpreter}_configure_flags" "db_configure_flags"
|
@@ -387,7 +407,7 @@ RubyWrapper
|
|
387
407
|
fi
|
388
408
|
__rvm_run "configure" "$rvm_ruby_configure" "$message"
|
389
409
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
390
|
-
"$rvm_scripts_path/log" "error" "There has been an error while running '$rvm_ruby_configure'. Aborting the installation." ;
|
410
|
+
"$rvm_scripts_path/log" "error" "There has been an error while running '$rvm_ruby_configure'. Aborting the installation." ; return $result
|
391
411
|
fi
|
392
412
|
|
393
413
|
if [[ "$rvm_trace_flag" -eq 1 ]] ; then
|
@@ -397,7 +417,7 @@ RubyWrapper
|
|
397
417
|
fi
|
398
418
|
__rvm_run "rake" "$rvm_ruby_make" "$message"
|
399
419
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
400
|
-
"$rvm_scripts_path/log" "error" "There has been an error while running '$rvm_ruby_configure'. Aborting the installation." ;
|
420
|
+
"$rvm_scripts_path/log" "error" "There has been an error while running '$rvm_ruby_configure'. Aborting the installation." ; return $result
|
401
421
|
fi ; unset ruby
|
402
422
|
|
403
423
|
# Symlink rubinius wrappers
|
@@ -405,14 +425,14 @@ RubyWrapper
|
|
405
425
|
|
406
426
|
# Install IRB Wrapper on Rubinius.
|
407
427
|
file_name="$rvm_ruby_home/bin/irb"
|
408
|
-
|
428
|
+
rm -f "$file_name"
|
409
429
|
printf '#!/usr/bin/env bash\n' > "$file_name"
|
410
430
|
printf "exec '$rvm_ruby_home/bin/rbx' 'irb' \"\$@\"\n" >> "$file_name"
|
411
431
|
[[ -f "$file_name" ]] && chmod +x "$file_name"
|
412
432
|
|
413
433
|
# Install Gem Wrapper on Rubinius.
|
414
434
|
file_name="$rvm_ruby_home/bin/gem"
|
415
|
-
|
435
|
+
cp -f "$rvm_ruby_home/lib/bin/gem.rb" "$file_name"
|
416
436
|
__rvm_inject_ruby_shebang "$file_name"
|
417
437
|
[[ -f "$file_name" ]] && chmod +x "$file_name"
|
418
438
|
unset file_name
|
@@ -428,34 +448,34 @@ RubyWrapper
|
|
428
448
|
printf "java must be installed and in your path in order to install JRuby." ; return 1
|
429
449
|
fi
|
430
450
|
|
431
|
-
|
451
|
+
builtin cd "$rvm_src_path"
|
452
|
+
|
432
453
|
__rvm_fetch_ruby
|
433
454
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
434
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ;
|
455
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
435
456
|
fi
|
436
457
|
|
437
458
|
builtin cd "$rvm_ruby_src_path"
|
438
|
-
if [[ $rvm_head_flag -eq 1 ]] ; then __rvm_run "ant.dist" "ant dist" "
|
459
|
+
if [[ $rvm_head_flag -eq 1 ]] ; then __rvm_run "ant.dist" "ant dist" "#ant dist" ; fi
|
439
460
|
|
440
|
-
|
461
|
+
mkdir -p "$rvm_ruby_home/bin/"
|
441
462
|
if "$rvm_scripts_path/match" "$rvm_ruby_version" "1\.3" || "$rvm_scripts_path/match" "$rvm_ruby_version" "1\.2" ; then
|
442
463
|
__rvm_run "nailgun" "builtin cd \"$rvm_ruby_src_path/tool/nailgun\" && make $rvm_make_flags" "Building Nailgun"
|
443
464
|
else
|
444
465
|
__rvm_run "nailgun" "builtin cd \"$rvm_ruby_src_path/tool/nailgun\" && ./configure --prefix=$rvm_ruby_home && make $rvm_make_flags" "Building Nailgun"
|
445
466
|
fi
|
446
467
|
|
447
|
-
|
448
|
-
|
449
|
-
if [[ -z "$rvm_ruby_home" ]] || [[ "$rvm_ruby_home" = "/" ]] ; then echo "WTH?!?! rvm_ruby_home == / ??? not removing." ; return 1000000 ; fi
|
468
|
+
if [[ -z "${rvm_ruby_home:-""}" || "$rvm_ruby_home" = "/" ]] ; then echo "WTH?!?! rvm_ruby_home == / ??? not removing." ; return 1000000 ; fi
|
450
469
|
|
451
|
-
|
452
|
-
__rvm_run "install" "/bin/cp -Rf $rvm_ruby_src_path $rvm_ruby_home" "
|
470
|
+
rm -rf "$rvm_ruby_home"
|
471
|
+
__rvm_run "install" "/bin/cp -Rf $rvm_ruby_src_path $rvm_ruby_home" "#installing JRuby to $rvm_ruby_home"
|
453
472
|
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
473
|
+
(
|
474
|
+
builtin cd "$rvm_ruby_home/bin/"
|
475
|
+
for binary in jirb jruby jgem ; do
|
476
|
+
ln -nfs "$binary" "${binary#j}"
|
477
|
+
done ; unset binary
|
478
|
+
)
|
459
479
|
|
460
480
|
# -server is "a lot slower for short-lived scripts like rake tasks, and takes longer to load"
|
461
481
|
#sed -e 's#^JAVA_VM=-client#JAVA_VM=-server#' $rvm_ruby_home/bin/jruby > $rvm_ruby_home/bin/jruby.new &&
|
@@ -480,7 +500,6 @@ RubyWrapper
|
|
480
500
|
"$rvm_scripts_path/log" "info" "Copying across included gems"
|
481
501
|
cp -R "$rvm_ruby_home/lib/ruby/gems/1.8/" "$GEM_HOME/"
|
482
502
|
fi
|
483
|
-
|
484
503
|
;;
|
485
504
|
|
486
505
|
maglev)
|
@@ -489,16 +508,16 @@ RubyWrapper
|
|
489
508
|
"$rvm_scripts_path/log" "info" "Running MagLev prereqs checking script."
|
490
509
|
"$rvm_scripts_path/maglev"
|
491
510
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
492
|
-
"$rvm_scripts_path/log" "error" "Prerequisite checks have failed. Aborting the installation." ;
|
511
|
+
"$rvm_scripts_path/log" "error" "Prerequisite checks have failed. Aborting the installation." ; return $result
|
493
512
|
fi
|
494
513
|
|
495
|
-
|
514
|
+
builtin cd "$rvm_src_path"
|
496
515
|
|
497
|
-
if [[ ! -d "$rvm_src_path/$rvm_ruby_string"
|
498
|
-
|
516
|
+
if [[ ! -d "$rvm_src_path/$rvm_ruby_string" || ${rvm_force_flag:-0} -eq 1 ]] ; then
|
517
|
+
rm -rf "$rvm_src_path/$rvm_ruby_string/" "$rvm_src_path/$rvm_ruby_string/"
|
499
518
|
__rvm_fetch_ruby
|
500
519
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
501
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ;
|
520
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
502
521
|
fi
|
503
522
|
fi
|
504
523
|
|
@@ -509,13 +528,13 @@ RubyWrapper
|
|
509
528
|
fi
|
510
529
|
|
511
530
|
"$rvm_scripts_path/log" "info" "Downloading the GemStone package, this may take a while depending on your connection..."
|
531
|
+
|
512
532
|
"$rvm_scripts_path/fetch" "$rvm_gemstone_url"
|
513
533
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
514
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the GemStone package. Aborting the installation." ;
|
534
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the GemStone package. Aborting the installation." ; return $result
|
515
535
|
fi
|
516
536
|
|
517
537
|
builtin cd "$rvm_src_path"
|
518
|
-
|
519
538
|
if [[ -s "$rvm_ruby_package_file" ]] ; then
|
520
539
|
mv "$rvm_ruby_package_file" "$rvm_ruby_src_path"
|
521
540
|
fi
|
@@ -524,23 +543,22 @@ RubyWrapper
|
|
524
543
|
|
525
544
|
__rvm_run "gemstone.extract" "gunzip < \"$rvm_archives_path/${rvm_gemstone_package_file}.${rvm_archive_extension}\" | tar xf - -C $rvm_ruby_src_path"
|
526
545
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
527
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the GemStone package. Aborting the installation." ;
|
546
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the GemStone package. Aborting the installation." ; return $result
|
528
547
|
fi
|
529
548
|
|
530
549
|
chmod -R 777 "$rvm_gemstone_package_file" # for now.
|
531
550
|
ln -nfs "$rvm_gemstone_package_file" "gemstone"
|
532
551
|
|
533
|
-
__rvm_pushpop
|
534
|
-
|
535
552
|
if [[ -z "$rvm_ruby_home" ]] || [[ "$rvm_ruby_home" = "/" ]] ; then echo "WTH?!?! rvm_ruby_home == / ??? not removing." ; return 1000000 ; fi
|
536
|
-
|
553
|
+
rm -rf $rvm_ruby_home
|
537
554
|
__rvm_run "install" "/bin/cp -Rf $rvm_ruby_src_path $rvm_ruby_home" "Installing maglev to $rvm_ruby_home"
|
538
555
|
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
556
|
+
(
|
557
|
+
builtin cd "$rvm_ruby_home/bin/"
|
558
|
+
for binary in maglev-irb maglev-ruby maglev-gem ; do
|
559
|
+
ln -nfs "$binary" "${binary#maglev-}"
|
560
|
+
done ; unset binary
|
561
|
+
)
|
544
562
|
|
545
563
|
for binary in maglev-ruby maglev-irb maglev-gem ; do
|
546
564
|
__rvm_inject_gem_env "$rvm_ruby_home/bin/$binary"
|
@@ -583,66 +601,66 @@ RubyWrapper
|
|
583
601
|
fi
|
584
602
|
|
585
603
|
if [[ $rvm_head_flag -eq 1 ]] ; then
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
return 1
|
594
|
-
fi
|
595
|
-
else
|
596
|
-
printf "Cannot recognize mono version."
|
604
|
+
mono_version="$(mono -V | head -n 1 | cut -d ' ' -f5)"
|
605
|
+
if "$rvm_scripts_path/match" "$mono_version" "([0-9]+)\.([0-9]+)\.?([0-9]+)?" ; then
|
606
|
+
mono_major_ver="$(echo "$mono_version" | cut -d '.' -f1)"
|
607
|
+
mono_minor_ver="$(echo "$mono_version" | cut -d '.' -f2)"
|
608
|
+
if [[ $mono_major_ver -lt 2 ]] || ( [[ $mono_major_ver -eq 2 ]] && [[ $mono_minor_ver -lt 6 ]] ) ; then
|
609
|
+
printf "Mono 2.6 (or greater) must be installed and in your path in order to build IronRuby from the repository."
|
610
|
+
printf "Version detected: ${mono_version}"
|
597
611
|
return 1
|
598
612
|
fi
|
613
|
+
else
|
614
|
+
printf "Cannot recognize mono version."
|
615
|
+
return 1
|
616
|
+
fi
|
599
617
|
|
600
|
-
|
618
|
+
__rvm_ensure_has_18_compat_ruby
|
601
619
|
|
602
|
-
|
603
|
-
|
604
|
-
|
620
|
+
__rvm_fetch_ruby
|
621
|
+
if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi
|
622
|
+
builtin cd "$rvm_ruby_src_path"
|
605
623
|
|
606
|
-
|
624
|
+
compatible_ruby="$(__rvm_18_compat_ruby)"
|
607
625
|
|
608
|
-
|
626
|
+
"$rvm_wrappers_path/$compatible_ruby/gem" install pathname2 --no-rdoc --no-ri
|
609
627
|
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
628
|
+
# MONO_LIB=/Library/Frameworks/Mono.framework/Versions/current/lib/
|
629
|
+
rvm_ruby_make="$rvm_wrappers_path/$compatible_ruby/rake MERLIN_ROOT=\"$rvm_ruby_src_path/Merlin/Main\" compile mono=1 configuration=release --trace"
|
630
|
+
__rvm_run "rake" "$rvm_ruby_make" "Building IronRuby..."
|
631
|
+
unset compatible_ruby
|
632
|
+
if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi
|
615
633
|
|
616
|
-
|
617
|
-
|
634
|
+
rm -rf "$rvm_ruby_home"/*
|
635
|
+
mkdir -p "$rvm_ruby_home/bin" "$rvm_ruby_home/lib" "$rvm_ruby_home/lib/ruby" "$rvm_ruby_home/lib/IronRuby"
|
618
636
|
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
637
|
+
cp -r "$rvm_ruby_src_path/Merlin/Main/Bin/mono_release"/* "$rvm_ruby_home/bin/"
|
638
|
+
cp -r "$rvm_ruby_src_path/Merlin/Main/Languages/Ruby/Scripts/bin"/* "$rvm_ruby_home/bin/"
|
639
|
+
cp -r "$rvm_ruby_src_path/Merlin/External.LCA_RESTRICTED/Languages/Ruby/redist-libs/ruby"/* "$rvm_ruby_home/lib/ruby"
|
640
|
+
cp -r "$rvm_ruby_src_path/Merlin/Main/Languages/Ruby/Libs"/* "$rvm_ruby_home/lib/IronRuby"
|
623
641
|
else
|
624
642
|
"$rvm_scripts_path/log" "info" "Retrieving IronRuby"
|
625
643
|
|
626
|
-
"$rvm_scripts_path/fetch" "$
|
644
|
+
"$rvm_scripts_path/fetch" "$rvm_ruby_url" "$rvm_ruby_package_file"
|
627
645
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
628
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ;
|
646
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
629
647
|
fi
|
630
648
|
|
631
|
-
|
649
|
+
mkdir -p "$rvm_ruby_src_path" "$rvm_ruby_home"
|
632
650
|
unzip -o -d "${rvm_ruby_src_path}" "${rvm_archives_path}/${rvm_ruby_package_file}" >> "$rvm_ruby_log_path/extract.log" 2>> "$rvm_ruby_log_path/extract.error.log"
|
633
651
|
result=$? ; if [[ "$result" -gt 1 ]] ; then
|
634
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract $rvm_ruby_package_file. Aborting the installation." ;
|
652
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract $rvm_ruby_package_file. Aborting the installation." ; return $result
|
635
653
|
fi
|
636
654
|
|
637
655
|
for dir in bin lib silverlight ; do
|
638
|
-
|
656
|
+
cp -Rf "$rvm_src_path/$rvm_ruby_string/$dir" "$rvm_ruby_home/$dir"
|
639
657
|
done
|
640
658
|
fi
|
641
659
|
|
642
660
|
binaries=(gem irb rdoc rake ri ruby)
|
643
661
|
for binary_name in ${binaries[@]} ; do
|
644
662
|
if [[ -s "$rvm_ruby_home/bin/$binary_name" ]] ; then
|
645
|
-
|
663
|
+
tr -d '\r' < "$rvm_ruby_home/bin/$binary_name" > "$rvm_ruby_home/bin/$binary_name.new"
|
646
664
|
#sed -e '1,1s=.*=#!'"/usr/bin/env ir=" "$rvm_ruby_home/bin/$binary_name" > "$rvm_ruby_home/bin/$binary_name.new"
|
647
665
|
mv -f "$rvm_ruby_home/bin/$binary_name.new" "$rvm_ruby_home/bin/$binary_name"
|
648
666
|
chmod +x "$rvm_ruby_home/bin/$binary_name"
|
@@ -658,7 +676,7 @@ RubyWrapper
|
|
658
676
|
;;
|
659
677
|
|
660
678
|
mput|shyouhei)
|
661
|
-
if [[
|
679
|
+
if [[ ${rvm_make_flags_flag:-0} -eq 1 ]] ; then __rvm_make_flags ; fi
|
662
680
|
unset BUNDLE_PATH GEM_HOME GEM_PATH MY_RUBY_HOME IRBRC
|
663
681
|
__rvm_remove_rvm_from_path
|
664
682
|
__rvm_conditionally_add_bin_path ; export PATH
|
@@ -682,18 +700,20 @@ RubyWrapper
|
|
682
700
|
fi
|
683
701
|
|
684
702
|
if [[ -s ./Makefile ]] && [[ -z "$rvm_reconfigure_flag" ]] ; then
|
685
|
-
|
703
|
+
if [[ ${rvm_debug_flag:-0} -gt 0 ]] ; then
|
704
|
+
"$rvm_scripts_path/log" "debug" "Skipping configure step, Makefile exists so configure must have already been run."
|
705
|
+
fi
|
686
706
|
elif [[ -n "$rvm_ruby_configure" ]] ; then
|
687
707
|
__rvm_run "configure" "$rvm_ruby_configure"
|
688
708
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
689
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to configure the source. Aborting the installation." ;
|
709
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to configure the source. Aborting the installation." ; return $result
|
690
710
|
fi
|
691
711
|
|
692
712
|
elif [[ -s ./configure ]] ; then
|
693
713
|
local configure_command="./configure --prefix=$rvm_ruby_home $rvm_ruby_configure_flags"
|
694
714
|
__rvm_run "configure" "" "Configuring $rvm_ruby_string using $rvm_ruby_configure_flags, this may take a while depending on your cpu(s)..."
|
695
715
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
696
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to configure the source. Aborting the installation." ;
|
716
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to configure the source. Aborting the installation." ; return $result
|
697
717
|
fi
|
698
718
|
else
|
699
719
|
"$rvm_scripts_path/log" "error" "Skipping configure step, 'configure' script does not exist, did autoconf not run successfully?"
|
@@ -702,13 +722,13 @@ RubyWrapper
|
|
702
722
|
rvm_ruby_make=${rvm_ruby_make:-"make"}
|
703
723
|
__rvm_run "make" "$rvm_ruby_make $rvm_make_flags" "Compiling $rvm_ruby_string, this may take a while depending on your cpu(s)..."
|
704
724
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
705
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to run make. Aborting the installation." ;
|
725
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to run make. Aborting the installation." ; return $result
|
706
726
|
fi
|
707
727
|
|
708
728
|
rvm_ruby_make_install=${rvm_ruby_make_install:-"make install"}
|
709
729
|
__rvm_run "install" "$rvm_ruby_make_install" "Installing $rvm_ruby_string"
|
710
730
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
711
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to run make install. Aborting the installation." ;
|
731
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to run make install. Aborting the installation." ; return $result
|
712
732
|
fi
|
713
733
|
|
714
734
|
"$rvm_scripts_path/log" "info" "Installation of $rvm_ruby_string is complete."
|
@@ -721,15 +741,18 @@ RubyWrapper
|
|
721
741
|
__rvm_bin_script
|
722
742
|
__rvm_run "chmod.bin" "chmod +x $rvm_ruby_home/bin/*"
|
723
743
|
__rvm_post_install
|
724
|
-
__rvm_pushpop
|
725
744
|
;;
|
726
745
|
|
727
746
|
ruby)
|
728
|
-
__rvm_check_for_bison # Run like hell
|
747
|
+
__rvm_check_for_bison # && Run like hell...
|
729
748
|
result=$? ; if [[ "$result" -gt 0 ]] ; then return $result ; fi
|
749
|
+
if [[ ${rvm_make_flags_flag:-0} -eq 1 ]] ; then __rvm_make_flags ; fi
|
730
750
|
|
731
|
-
|
732
|
-
|
751
|
+
(
|
752
|
+
__rvm_install_source $*
|
753
|
+
)
|
754
|
+
|
755
|
+
result=$?
|
733
756
|
;;
|
734
757
|
|
735
758
|
default)
|
@@ -743,12 +766,14 @@ RubyWrapper
|
|
743
766
|
rvm_hook="after_install" ; source "$rvm_scripts_path/hook"
|
744
767
|
|
745
768
|
if [[ -n "$ruby_options" ]] ; then RUBYOPT="$ruby_options" ; export RUBYOPT ; fi
|
769
|
+
|
770
|
+
return $result
|
746
771
|
}
|
747
772
|
|
748
773
|
__rvm_fetch_from_github() {
|
749
|
-
|
774
|
+
rm -rf "$rvm_ruby_src_path"
|
750
775
|
if [[ ! -d "$rvm_ruby_repo_path/.git" ]] ; then
|
751
|
-
|
776
|
+
rm -rf "$rvm_ruby_repo_path"
|
752
777
|
builtin cd "$rvm_home"
|
753
778
|
__rvm_run "$1.repo" "git clone --depth 1 $rvm_ruby_repo_url $rvm_ruby_repo_path" "Cloning $rvm_ruby_repo_url"
|
754
779
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
@@ -767,8 +792,9 @@ __rvm_fetch_from_github() {
|
|
767
792
|
|
768
793
|
__rvm_fetch_ruby() {
|
769
794
|
[[ -z "$rvm_ruby_selected_flag" ]] && __rvm_select
|
795
|
+
"$rvm_scripts_path/log" "info" "#fetching ${rvm_ruby_string}"
|
770
796
|
|
771
|
-
if [[ $rvm_head_flag -eq 0 && -z "$rvm_ruby_tag" && -z "$rvm_ruby_revision" ]] ; then
|
797
|
+
if [[ ${rvm_head_flag:-0} -eq 0 && -z "${rvm_ruby_tag:-""}" && -z "${rvm_ruby_revision:-""}" ]] ; then
|
772
798
|
rvm_ruby_package_name="${rvm_ruby_package_name:-"$rvm_ruby_string"}"
|
773
799
|
rvm_ruby_package_file="${rvm_ruby_package_file:-"$rvm_ruby_package_name"}"
|
774
800
|
if [[ "ruby" = "$rvm_ruby_interpreter" ]]; then
|
@@ -779,66 +805,66 @@ __rvm_fetch_ruby() {
|
|
779
805
|
|
780
806
|
if [[ ! -s "$rvm_archives_path/$rvm_ruby_package_file.$rvm_archive_extension" ]] ; then
|
781
807
|
if [[ "ruby" = "$rvm_ruby_interpreter" ]] ; then
|
782
|
-
|
808
|
+
rvm_ruby_url="$(__rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_release_version}.${rvm_ruby_major_version}_url")/$rvm_ruby_package_file.$rvm_archive_extension"
|
783
809
|
elif [[ "ree" = "$rvm_ruby_interpreter" ]] ; then
|
784
|
-
|
810
|
+
rvm_ruby_url="$(__rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_version}_url")/${rvm_ruby_package_file}.${rvm_archive_extension}"
|
785
811
|
elif [[ "jruby" = "$rvm_ruby_interpreter" ]] ; then
|
786
|
-
|
812
|
+
rvm_ruby_url="$(__rvm_db "${rvm_ruby_interpreter}_url")/${rvm_ruby_version}/${rvm_ruby_package_file}.${rvm_archive_extension}"
|
787
813
|
elif [[ "maglev" = "$rvm_ruby_interpreter" ]] ; then
|
788
814
|
: # Should already be set from selector
|
789
815
|
else
|
790
|
-
|
816
|
+
rvm_ruby_url="$(__rvm_db "${rvm_ruby_interpreter}_url")/${rvm_ruby_package_file}.${rvm_archive_extension}"
|
791
817
|
fi
|
792
818
|
"$rvm_scripts_path/log" "info" "Downloading ${rvm_ruby_package_file}, this may take a while depending on your connection..."
|
793
|
-
"$rvm_scripts_path/fetch" "${
|
819
|
+
"$rvm_scripts_path/fetch" "${rvm_ruby_url}"
|
794
820
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
795
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ;
|
821
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
796
822
|
fi
|
797
823
|
fi
|
798
824
|
|
799
|
-
if [[ ! -d "$rvm_ruby_src_path"
|
800
|
-
|
825
|
+
if [[ ! -d "$rvm_ruby_src_path" || ${rvm_force_flag:-0} -eq 1 ]] ; then
|
826
|
+
rm -rf "$rvm_ruby_src_path" # Especially when forced, we want to ensure the destination is missing.
|
801
827
|
|
802
|
-
|
828
|
+
mkdir -p "/tmp/rvm_src_$$"
|
803
829
|
|
804
830
|
if [[ "tar.gz" = "$rvm_archive_extension" ]] || [[ "tgz" = "$rvm_archive_extension" ]] ; then
|
805
|
-
__rvm_run "extract" "gunzip < \"$rvm_archives_path/$rvm_ruby_package_file.$rvm_archive_extension\" | tar xf - -C /tmp/rvm_src_$$" "
|
831
|
+
__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"
|
806
832
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
807
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation." ;
|
833
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation." ; return $result
|
808
834
|
fi
|
809
835
|
elif [[ "zip" = "$rvm_archive_extension" ]] ; then
|
810
836
|
__rvm_run "extract" "unzip -q -o $rvm_archives_path/$rvm_ruby_package_file -d /tmp/rvm_src_$$"
|
811
837
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
812
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract $rvm_ruby_package_file. Aborting the installation." ;
|
838
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract $rvm_ruby_package_file. Aborting the installation." ; return $result
|
813
839
|
fi
|
814
840
|
elif [[ "tar.bz2" = "$rvm_archive_extension" ]] ; then
|
815
|
-
__rvm_run "extract" "bunzip2 < \"$rvm_archives_path/$rvm_ruby_package_file.$rvm_archive_extension\" | tar xf - -C /tmp/rvm_src_$$" "
|
841
|
+
__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"
|
816
842
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
817
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation." ;
|
843
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to extract the source. Aborting the installation." ; return $result
|
818
844
|
fi
|
819
845
|
fi
|
820
846
|
|
821
|
-
mv "/tmp/rvm_src_$$/$(builtin cd /tmp/rvm_src_$$ ;
|
847
|
+
mv "/tmp/rvm_src_$$/$(builtin cd /tmp/rvm_src_$$ ; ls)" "$rvm_ruby_src_path" ; rm -rf "/tmp/rvm_src_$$"
|
822
848
|
|
823
|
-
if [[ -n "$rvm_ruby_name"
|
849
|
+
if [[ -n "${rvm_ruby_name:-""}" && -d "$rvm_src_path/$(echo $rvm_ruby_string | sed -e 's/-n.*//')" ]] ; then
|
824
850
|
mv "$rvm_src_path/$(echo "$rvm_ruby_string" | sed -e 's/-n.*//')" "$rvm_ruby_src_path"
|
825
851
|
fi
|
826
852
|
|
827
853
|
else
|
828
|
-
"$rvm_scripts_path/log" "info" "$rvm_ruby_src_path
|
854
|
+
"$rvm_scripts_path/log" "info" "#extracting $rvm_ruby_string to $rvm_ruby_src_path (already extracted)" ; return 0
|
829
855
|
fi
|
830
856
|
|
831
857
|
else
|
832
858
|
|
833
|
-
|
834
|
-
if [[ -n "$(echo "$
|
859
|
+
mkdir -p "$rvm_repo_path"
|
860
|
+
if [[ -n "$(echo "$rvm_ruby_url" | awk '/^git/')" ]] ; then
|
835
861
|
if [[ -d "$rvm_ruby_repo_path/.git" ]] ; then
|
836
862
|
builtin cd "$rvm_ruby_repo_path"
|
837
863
|
if [[ -z "$rvm_ruby_revision" ]] ; then
|
838
864
|
"$rvm_scripts_path/log" "info" "Pulling from $rvm_ruby_repo_url, this may take a while depending on your connection..."
|
839
865
|
git pull origin master --force
|
840
866
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
841
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to update the source from the remote repository. Aborting the installation." ;
|
867
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to update the source from the remote repository. Aborting the installation." ; return $result
|
842
868
|
fi
|
843
869
|
else
|
844
870
|
if [[ -z "$rvm_ruby_sha" ]] ; then
|
@@ -847,11 +873,11 @@ __rvm_fetch_ruby() {
|
|
847
873
|
git checkout $(echo "$rvm_ruby_sha" | sed 's#^s##')
|
848
874
|
fi
|
849
875
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
850
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to checkout the source branch. Aborting the installation." ;
|
876
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to checkout the source branch. Aborting the installation." ; return $result
|
851
877
|
fi
|
852
878
|
fi
|
853
879
|
else
|
854
|
-
|
880
|
+
rm -rf "$rvm_ruby_repo_path"
|
855
881
|
rvm_ruby_repo_http_url="${rvm_ruby_repo_url//git:/http:/}"
|
856
882
|
"$rvm_scripts_path/log" "info" "Cloning from $rvm_ruby_repo_url, this may take a while depending on your connection..."
|
857
883
|
git clone --depth 1 "$rvm_ruby_repo_url" "$rvm_ruby_repo_path"
|
@@ -859,26 +885,26 @@ __rvm_fetch_ruby() {
|
|
859
885
|
"$rvm_scripts_path/log" "info" "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..."
|
860
886
|
git clone "$rvm_ruby_repo_http_url" "$rvm_ruby_repo_path"
|
861
887
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
862
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the repository. Aborting the installation." ;
|
888
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the repository. Aborting the installation." ; return $result
|
863
889
|
fi
|
864
890
|
fi
|
865
891
|
fi
|
866
892
|
else
|
867
893
|
if [[ -n "$rvm_ruby_tag" ]] ; then
|
868
894
|
# TODO: Check if tag v is valid
|
869
|
-
|
895
|
+
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/tags/$(echo "$rvm_ruby_tag" | sed 's/^t//')"}"
|
870
896
|
elif [[ -z "$rvm_ruby_version" && $rvm_head_flag -eq 1 ]] ; then
|
871
|
-
|
872
|
-
elif [[ "$
|
873
|
-
if [[ -z "$
|
874
|
-
|
897
|
+
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/trunk"}"
|
898
|
+
elif [[ "$rvm_ruby_major_version" = "9" ]] ; then
|
899
|
+
if [[ -z "$rvm_ruby_minor_version" || "$rvm_ruby_minor_version" = 3 ]] ; then
|
900
|
+
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/trunk"}"
|
875
901
|
else
|
876
|
-
|
902
|
+
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/branches/ruby_${rvm_ruby_release_version}_${rvm_ruby_major_version}_${rvm_ruby_minor_version}"}"
|
877
903
|
fi
|
878
|
-
elif [[ -z "$
|
879
|
-
|
904
|
+
elif [[ -z "$rvm_ruby_minor_version" ]] || [[ "$rvm_ruby_major_version.$rvm_ruby_minor_version" = "8.8" ]] ; then
|
905
|
+
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/branches/ruby_${rvm_ruby_release_version}_${rvm_ruby_major_version}"}"
|
880
906
|
else
|
881
|
-
|
907
|
+
rvm_ruby_url="${rvm_ruby_url:-"$rvm_ruby_repo_url/branches/ruby_${rvm_ruby_release_version}_${rvm_ruby_major_version}_${rvm_ruby_minor_version}"}"
|
882
908
|
fi
|
883
909
|
rvm_rev=""
|
884
910
|
if [ -n "$rvm_ruby_revision" ] ; then
|
@@ -887,25 +913,25 @@ __rvm_fetch_ruby() {
|
|
887
913
|
|
888
914
|
if [[ -d "$rvm_ruby_repo_path/.svn" ]] ; then
|
889
915
|
builtin cd "$rvm_ruby_repo_path"
|
890
|
-
"$rvm_scripts_path/log" "info" "Updating ruby from $
|
891
|
-
__rvm_run "svn.switch" "svn switch $
|
916
|
+
"$rvm_scripts_path/log" "info" "Updating ruby from $rvm_ruby_url"
|
917
|
+
__rvm_run "svn.switch" "svn switch $rvm_ruby_url"
|
892
918
|
__rvm_run "svn.update" "svn update"
|
893
919
|
if [[ -n "$rvm_rev" ]] ; then
|
894
|
-
"$rvm_scripts_path/log" "info" "Checking out revision ${rvm_rev/-r/-r } from $
|
920
|
+
"$rvm_scripts_path/log" "info" "Checking out revision ${rvm_rev/-r/-r } from $rvm_ruby_url"
|
895
921
|
__rvm_run "svn.checkout" "svn update -q ${rvm_rev/-r/-r }"
|
896
922
|
fi
|
897
923
|
else
|
898
|
-
|
899
|
-
__rvm_run "svn.checkout" "svn checkout -q ${rvm_rev/-r/-r } $
|
924
|
+
rm -rf "$rvm_ruby_repo_path"
|
925
|
+
__rvm_run "svn.checkout" "svn checkout -q ${rvm_rev/-r/-r } $rvm_ruby_url $rvm_ruby_repo_path" "Downloading source from ${rvm_ruby_url}."
|
900
926
|
fi
|
901
927
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
902
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch / update the source. Aborting the installation." ;
|
928
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch / update the source. Aborting the installation." ; return $result
|
903
929
|
fi
|
904
930
|
|
905
931
|
fi
|
906
932
|
"$rvm_scripts_path/log" "info" "Copying from repo to src path..."
|
907
|
-
|
908
|
-
|
933
|
+
rm -rf "$rvm_ruby_src_path"
|
934
|
+
cp -R "$rvm_ruby_repo_path" "$rvm_ruby_src_path"
|
909
935
|
fi
|
910
936
|
}
|
911
937
|
|
@@ -925,12 +951,12 @@ __rvm_uninstall_ruby() {
|
|
925
951
|
for dir in "$rvm_rubies_path" ; do
|
926
952
|
if [[ -d "$dir/$rvm_ruby_string" ]] ; then
|
927
953
|
"$rvm_scripts_path/log" "info" "Removing $dir/$rvm_ruby_string..."
|
928
|
-
|
954
|
+
rm -rf $dir/$rvm_ruby_string
|
929
955
|
else
|
930
956
|
"$rvm_scripts_path/log" "info" "$dir/$rvm_ruby_string has already been removed."
|
931
957
|
fi
|
932
958
|
if [[ -e "$rvm_bin_path/$rvm_ruby_string" ]] ; then
|
933
|
-
|
959
|
+
rm -f "$rvm_bin_path/$rvm_ruby_string"
|
934
960
|
fi
|
935
961
|
done ; unset dir
|
936
962
|
|
@@ -946,24 +972,28 @@ __rvm_uninstall_ruby() {
|
|
946
972
|
}
|
947
973
|
|
948
974
|
__rvm_remove_ruby() {
|
949
|
-
if [[
|
975
|
+
if [[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] ; then __rvm_select ; fi
|
976
|
+
|
977
|
+
if [[ -n "${rvm_ruby_string:-""}" ]] ; then
|
950
978
|
|
951
|
-
if [[ -n "$rvm_ruby_string" ]] ; then
|
952
979
|
for dir in $rvm_src_path $rvm_rubies_path ; do
|
980
|
+
|
953
981
|
if [[ -d $dir/$rvm_ruby_string ]] ; then
|
954
982
|
"$rvm_scripts_path/log" "info" "Removing $dir/$rvm_ruby_string..."
|
955
|
-
|
983
|
+
rm -rf $dir/$rvm_ruby_string
|
984
|
+
|
956
985
|
else
|
957
986
|
"$rvm_scripts_path/log" "info" "it seems that $dir/$rvm_ruby_string is already non existent."
|
958
987
|
fi
|
959
988
|
|
960
989
|
if [[ -e "$rvm_bin_path/$rvm_ruby_string" ]] ; then
|
961
|
-
|
990
|
+
rm -f "$rvm_bin_path/$rvm_ruby_string"
|
962
991
|
fi
|
963
992
|
|
964
993
|
__rvm_check_default
|
965
994
|
|
966
995
|
done ; unset dir
|
996
|
+
|
967
997
|
__rvm_remove_install_record "$rvm_ruby_string"
|
968
998
|
__rvm_remove_gemsets
|
969
999
|
__rvm_remove_archives
|
@@ -977,12 +1007,14 @@ __rvm_remove_ruby() {
|
|
977
1007
|
}
|
978
1008
|
|
979
1009
|
__rvm_remove_gemsets() {
|
980
|
-
if [[
|
1010
|
+
if [[ ${rvm_gems_flag:-0} -eq 1 ]] ; then
|
981
1011
|
"$rvm_scripts_path/log" "info" "Removing $rvm_ruby_string gemsets..."
|
982
|
-
|
1012
|
+
|
1013
|
+
gemsets="$rvm_gems_path/$rvm_ruby_string $(ls -d "${rvm_gems_path}"/* | awk '/'$rvm_ruby_string'@/')"
|
1014
|
+
|
983
1015
|
for gemset in $gemsets ; do
|
984
1016
|
if [[ -d "$gemset" ]] ; then
|
985
|
-
|
1017
|
+
rm -rf "$gemset"
|
986
1018
|
fi
|
987
1019
|
done ; unset gemset gemsets
|
988
1020
|
fi
|
@@ -990,58 +1022,77 @@ __rvm_remove_gemsets() {
|
|
990
1022
|
|
991
1023
|
__rvm_remove_wrappers() {
|
992
1024
|
"$rvm_scripts_path/log" "info" "Removing $rvm_ruby_string wrappers..."
|
993
|
-
|
1025
|
+
|
1026
|
+
local wrappers wrapper
|
1027
|
+
|
1028
|
+
wrappers="$rvm_wrappers_path/$rvm_ruby_string $(ls -d "$rvm_wrappers_path"/* 2>/dev/null | awk '/'$rvm_ruby_string'@/')"
|
1029
|
+
|
994
1030
|
for wrapper in $wrappers ; do
|
995
|
-
|
996
|
-
done
|
1031
|
+
rm -rf "$wrapper"
|
1032
|
+
done
|
1033
|
+
|
1034
|
+
return 0
|
997
1035
|
}
|
998
1036
|
|
999
1037
|
__rvm_remove_environments() {
|
1000
1038
|
"$rvm_scripts_path/log" "info" "Removing $rvm_ruby_string environments..."
|
1001
|
-
|
1039
|
+
|
1040
|
+
local environments environment
|
1041
|
+
|
1042
|
+
environments="$rvm_environments_path/$rvm_ruby_string $(ls -d "$rvm_environments_path"/* | awk '/'$rvm_ruby_string'@/')"
|
1043
|
+
|
1002
1044
|
for environment in $environments ; do
|
1003
|
-
|
1004
|
-
done
|
1045
|
+
rm -rf "$environment"
|
1046
|
+
done
|
1047
|
+
|
1048
|
+
return 0
|
1005
1049
|
}
|
1006
1050
|
|
1007
1051
|
__rvm_remove_aliases() {
|
1008
1052
|
"$rvm_scripts_path/log" "info" "Removing $rvm_ruby_string aliases..."
|
1053
|
+
|
1054
|
+
local alias_name aliases
|
1055
|
+
|
1009
1056
|
aliases=$(awk '/'$rvm_ruby_string'/' $rvm_config_path/alias | sed 's/=.*//')
|
1057
|
+
|
1010
1058
|
for alias_name in $aliases ; do
|
1011
1059
|
# Remove from alias key-value store
|
1012
1060
|
"$rvm_scripts_path/alias" delete "$alias_name" >/dev/null 2>&1
|
1013
|
-
done
|
1061
|
+
done
|
1014
1062
|
}
|
1015
1063
|
|
1016
1064
|
__rvm_remove_archives() {
|
1017
|
-
if [[
|
1065
|
+
if [[ ${rvm_archive_flag:-0} -eq 1 ]] ; then
|
1018
1066
|
"$rvm_scripts_path/log" "info" "Removing $rvm_ruby_string archives..."
|
1019
|
-
|
1067
|
+
rm -f "$rvm_archives_path/${rvm_ruby_package_file}.${rvm_archive_extension}"
|
1020
1068
|
fi
|
1021
1069
|
}
|
1022
1070
|
|
1023
1071
|
__rvm_remove_binaries() {
|
1024
1072
|
"$rvm_scripts_path/log" "info" "Removing $rvm_ruby_string binaries..."
|
1073
|
+
|
1025
1074
|
# Iterate over all binaries and check for symlinked wrappers etc.
|
1026
|
-
|
1075
|
+
local binary_name
|
1076
|
+
for binary_name in $(ls "$rvm_bin_path"); do
|
1027
1077
|
full_binary_path="$rvm_bin_path/$binary_name"
|
1078
|
+
|
1028
1079
|
if [[ -L "$full_binary_path" ]] && "$rvm_scripts_path/match" "$(readlink "$full_binary_path")" "$rvm_ruby_string"; then
|
1029
|
-
|
1080
|
+
rm -f "$full_binary_path"
|
1030
1081
|
fi
|
1031
1082
|
unset full_binary_path
|
1032
|
-
done
|
1083
|
+
done
|
1033
1084
|
}
|
1034
1085
|
|
1035
1086
|
__rvm_post_install() {
|
1036
1087
|
if [[ "$rvm_ruby_interpreter" != "jruby" ]] ; then
|
1037
1088
|
binaries="${binaries:-"gem irb erb ri rdoc testrb rake"}"
|
1038
|
-
"$rvm_scripts_path/log" "info" "
|
1089
|
+
"$rvm_scripts_path/log" "info" "#shebangs adjustment for $rvm_ruby_string ($binaries)."
|
1039
1090
|
for binary in $(echo $binaries) ; do
|
1040
1091
|
if [[ -e "$rvm_ruby_home/bin/$binary" ]] || [[ -e "$rvm_ruby_src_path/bin/$binary" ]] ; then
|
1041
1092
|
if [[ "$rvm_ruby_src_path" != "$rvm_ruby_home" ]] && [[ -f "$rvm_ruby_src_path/bin/$binary" ]] ; then
|
1042
|
-
|
1093
|
+
cp -f "$rvm_ruby_src_path/bin/$binary" "$rvm_ruby_home/bin/$binary"
|
1043
1094
|
elif [[ -f "$rvm_ruby_gem_home/bin/$binary" ]] ; then
|
1044
|
-
|
1095
|
+
cp -f "$rvm_ruby_gem_home/bin/$binary" "$rvm_ruby_home/bin/$binary"
|
1045
1096
|
fi
|
1046
1097
|
__rvm_inject_gem_env "$rvm_ruby_home/bin/$binary"
|
1047
1098
|
__rvm_inject_ruby_shebang "$rvm_ruby_home/bin/$binary"
|
@@ -1051,7 +1102,7 @@ __rvm_post_install() {
|
|
1051
1102
|
fi
|
1052
1103
|
|
1053
1104
|
# Import the initial gemsets.
|
1054
|
-
__rvm_run_with_env "gemsets.initial" "$rvm_ruby_string" "'$rvm_scripts_path/gemsets' initial" "
|
1105
|
+
__rvm_run_with_env "gemsets.initial" "$rvm_ruby_string" "'$rvm_scripts_path/gemsets' initial" "#importing initial gems"
|
1055
1106
|
|
1056
1107
|
__rvm_irbrc
|
1057
1108
|
__rvm_generate_default_docs
|
@@ -1089,12 +1140,12 @@ __rvm_rubygems_setup() {
|
|
1089
1140
|
__rvm_inject_ruby_shebang "$rvm_ruby_src_path/bin/gem"
|
1090
1141
|
__rvm_inject_gem_env "$rvm_ruby_home/bin/gem"
|
1091
1142
|
|
1092
|
-
|
1143
|
+
cp "$rvm_ruby_src_path/bin/gem" "$rvm_ruby_home/bin/gem"
|
1093
1144
|
|
1094
1145
|
home="$GEM_HOME" ; path="$GEM_PATH" # Save
|
1095
1146
|
for dir in $rvm_ruby_global_gems_path $rvm_ruby_gem_home ; do
|
1096
1147
|
export GEM_HOME="$dir" ; export GEM_PATH="$dir" ; export BUNDLE_PATH="$dir"
|
1097
|
-
__rvm_run "rubygems.update" "$rvm_ruby_home/bin/gem update --system" "
|
1148
|
+
__rvm_run "rubygems.update" "$rvm_ruby_home/bin/gem update --system" "#rubygems update for $dir"
|
1098
1149
|
done ; unset home path dir
|
1099
1150
|
GEM_HOME="$home" ; GEM_PATH="$path" ; BUNDLE_PATH="$home"
|
1100
1151
|
export GEM_HOME GEM_PATH BUNDLE_PATH
|
@@ -1103,7 +1154,7 @@ __rvm_rubygems_setup() {
|
|
1103
1154
|
__rvm_inject_gem_env "$rvm_ruby_home/bin/gem"
|
1104
1155
|
|
1105
1156
|
directory_name="$rvm_ruby_home/lib/ruby/gems"
|
1106
|
-
version_number="${
|
1157
|
+
version_number="${rvm_ruby_release_version}.${rvm_ruby_major_version}"
|
1107
1158
|
if [[ "$version_number" == "." ]]; then
|
1108
1159
|
version_number="$(\ls "$directory_name" | \grep '^[[:digit:]].[[:digit:]]\(.[[:digit:]]\)\?' | head -n1)"
|
1109
1160
|
if [[ -n "$version_number" ]]; then
|
@@ -1115,12 +1166,16 @@ __rvm_rubygems_setup() {
|
|
1115
1166
|
ruby_lib_gem_path="${directory_name}/${version_number}"
|
1116
1167
|
fi
|
1117
1168
|
unset directory_name version_number
|
1169
|
+
|
1118
1170
|
elif [[ -n "$(echo "$rvm_ruby_interpreter" | awk '/^rbx|jruby/')" ]] ; then
|
1119
1171
|
# Hands off rubygems for rbx & jruby
|
1120
|
-
if [[
|
1172
|
+
if [[ ${rvm_debug_flag:-0} -gt 0 ]] ; then
|
1173
|
+
"$rvm_scripts_path/log" "debug" "Skipping rubygems update for $rvm_ruby_version"
|
1174
|
+
fi
|
1121
1175
|
ruby_lib_gem_path="$rvm_ruby_home/lib/ruby/gems/jruby"
|
1176
|
+
|
1122
1177
|
else
|
1123
|
-
"$rvm_scripts_path/log" "info" "
|
1178
|
+
"$rvm_scripts_path/log" "info" "#rubygems installing to $rvm_ruby_string"
|
1124
1179
|
rvm_rubygems_version="$(__rvm_db "${rvm_ruby_interpreter}_rubygems_version")"
|
1125
1180
|
rvm_rubygems_version="${rvm_rubygems_version:-"$(__rvm_db "rubygems_version")"}"
|
1126
1181
|
rvm_rubygems_url=$(__rvm_db "rubygems_${rvm_rubygems_version}_url")
|
@@ -1129,33 +1184,31 @@ __rvm_rubygems_setup() {
|
|
1129
1184
|
# Sanity check... If setup.rb is missing from the rubygems source path,
|
1130
1185
|
# something went wrong. Cleanup, aisle 3!
|
1131
1186
|
if [[ ! -f "$rvm_src_path/$rvm_gem_package_name/setup.rb" ]]; then
|
1132
|
-
|
1187
|
+
rm -rf "$rvm_src_path/$rvm_gem_package_name"
|
1133
1188
|
fi
|
1134
1189
|
|
1135
1190
|
if [[ ! -d "$rvm_src_path/$rvm_gem_package_name" ]] ; then
|
1136
1191
|
"$rvm_scripts_path/log" "info" "Retrieving $rvm_gem_package_name"
|
1137
1192
|
"$rvm_scripts_path/fetch" "$rvm_gem_url"
|
1138
1193
|
result=$? ; if [[ "$result" -gt 0 ]] ; then
|
1139
|
-
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ;
|
1194
|
+
"$rvm_scripts_path/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result
|
1140
1195
|
fi
|
1141
|
-
|
1196
|
+
mkdir -p "$rvm_src_path/$rvm_gem_package_name"
|
1142
1197
|
__rvm_run "rubygems.extract" "gunzip < \"$rvm_archives_path/$rvm_gem_package_name.tgz\" | tar xf - -C $rvm_src_path" "Extracting $rvm_gem_package_name ..."
|
1143
1198
|
fi
|
1144
1199
|
|
1145
1200
|
builtin cd "$rvm_src_path/$rvm_gem_package_name"
|
1146
1201
|
|
1147
|
-
__rvm_run "rubygems.install" "GEM_PATH=$rvm_ruby_gem_path GEM_HOME=$rvm_ruby_gem_home BUNDLE_PATH=$rvm_ruby_gem_home $rvm_ruby_home/bin/ruby $rvm_src_path/$rvm_gem_package_name/setup.rb"
|
1202
|
+
__rvm_run "rubygems.install" "GEM_PATH=$rvm_ruby_gem_path GEM_HOME=$rvm_ruby_gem_home BUNDLE_PATH=$rvm_ruby_gem_home $rvm_ruby_home/bin/ruby $rvm_src_path/$rvm_gem_package_name/setup.rb"
|
1148
1203
|
result=$?
|
1149
|
-
if [[ $result -
|
1150
|
-
"$rvm_scripts_path/log" "
|
1151
|
-
else
|
1152
|
-
"$rvm_scripts_path/log" "warning" "Installation of rubygems $rvm_ruby_package_name did not complete successfully."
|
1204
|
+
if [[ $result -gt 0 ]] ; then
|
1205
|
+
"$rvm_scripts_path/log" "warning" "#warning Installation of rubygems $rvm_ruby_package_name did not complete successfully."
|
1153
1206
|
fi
|
1154
1207
|
|
1155
1208
|
__rvm_inject_ruby_shebang "$rvm_ruby_home/bin/gem"
|
1156
1209
|
|
1157
|
-
if [[ -n "$
|
1158
|
-
ruby_lib_gem_path="$rvm_ruby_home/lib/ruby/gems/${
|
1210
|
+
if [[ -n "$rvm_ruby_major_version" ]] ; then
|
1211
|
+
ruby_lib_gem_path="$rvm_ruby_home/lib/ruby/gems/${rvm_ruby_release_version}.$rvm_ruby_major_version"
|
1159
1212
|
else
|
1160
1213
|
ruby_lib_gem_path="$rvm_ruby_home/lib/ruby/gems/$interpreter"
|
1161
1214
|
fi
|
@@ -1163,7 +1216,7 @@ __rvm_rubygems_setup() {
|
|
1163
1216
|
|
1164
1217
|
if [[ -n "$ruby_lib_gem_path" ]]; then
|
1165
1218
|
# Add ruby's gem path to ruby's lib direcotry.
|
1166
|
-
|
1219
|
+
mkdir -p $(dirname "$ruby_lib_gem_path")
|
1167
1220
|
if [[ -d "$ruby_lib_gem_path" ]] ; then \rm -rf "$ruby_lib_gem_path" ; fi
|
1168
1221
|
ln -nfs "$rvm_ruby_gem_home" "$ruby_lib_gem_path"
|
1169
1222
|
fi; unset ruby_lib_gem_path
|
@@ -1215,8 +1268,8 @@ __rvm_actual_file() {
|
|
1215
1268
|
__rvm_manage_rubies() {
|
1216
1269
|
unset rvm_gemset_name rvm_ruby_selected_flag
|
1217
1270
|
|
1218
|
-
rvm_ruby_gem_home=$(echo "$rvm_ruby_gem_home" | awk -F${rvm_gemset_separator} '{print $1}')
|
1219
|
-
rvm_ruby_string=$(echo "$rvm_ruby_string" | awk -F${rvm_gemset_separator} '{print $1}')
|
1271
|
+
rvm_ruby_gem_home=$(echo "${rvm_ruby_gem_home:-""}" | awk -F${rvm_gemset_separator} '{print $1}')
|
1272
|
+
rvm_ruby_string=$(echo "${rvm_ruby_string:-""}" | awk -F${rvm_gemset_separator} '{print $1}')
|
1220
1273
|
|
1221
1274
|
local manage_result=0
|
1222
1275
|
|
@@ -1249,7 +1302,7 @@ __rvm_manage_rubies() {
|
|
1249
1302
|
unset current_manage_ruby_string
|
1250
1303
|
__rvm_unset_ruby_variables
|
1251
1304
|
fi
|
1252
|
-
done < <(
|
1305
|
+
done < <(ls "$rvm_rubies_path"/*/bin/ruby 2> /dev/null)
|
1253
1306
|
else
|
1254
1307
|
"$rvm_scripts_path/log" "warn" 'Really? '"$action"' all? See "rvm list known" and limit the selection to something more sane please :)'
|
1255
1308
|
fi
|
@@ -1260,8 +1313,8 @@ __rvm_manage_rubies() {
|
|
1260
1313
|
}
|
1261
1314
|
|
1262
1315
|
args=($*)
|
1263
|
-
action="${args[0]}"
|
1264
|
-
rubies_string="${args[1]}"
|
1316
|
+
action="${args[0]:-""}"
|
1317
|
+
rubies_string="${args[1]:-""}"
|
1265
1318
|
args="$(echo ${args[@]:2}) " # Strip trailing / leading / extra spacing.
|
1266
1319
|
|
1267
1320
|
__rvm_manage_rubies
|