rvm 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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/migrate
CHANGED
@@ -10,9 +10,12 @@ usage() {
|
|
10
10
|
}
|
11
11
|
|
12
12
|
confirm() {
|
13
|
-
printf "$1 (Y/n): "
|
14
13
|
local confirmation_response
|
14
|
+
|
15
|
+
printf "$1 (Y/n): "
|
16
|
+
|
15
17
|
read -r confirmation_response
|
18
|
+
|
16
19
|
[[ -z "$confirmation_response" ]] || echo "$confirmation_response" | \grep -qi '^y'
|
17
20
|
}
|
18
21
|
|
@@ -26,79 +29,116 @@ expand_ruby_name() {
|
|
26
29
|
}
|
27
30
|
|
28
31
|
migrate_rubies() {
|
32
|
+
local origin_gemset destination_gemset gemset_name migrate_ruby_name migrate_alias_name migrate_new_alias_name binaries origin_wrappers_path full_bin_path expanded_symlink linked_binary_name new_wrapper_destination
|
33
|
+
|
29
34
|
expanded_source="$(expand_ruby_name "$source_ruby")"
|
30
35
|
expanded_destination="$(expand_ruby_name "$destination_ruby")"
|
31
36
|
|
32
37
|
if [[ -z "$expanded_source" ]]; then
|
33
38
|
die_with_error "Could not expand source ruby '$source_ruby'"
|
39
|
+
|
34
40
|
elif [[ -z "$expanded_destination" ]]; then
|
35
41
|
die_with_error "Could not expand destination ruby '$destination_ruby'"
|
42
|
+
|
36
43
|
elif [[ "$expanded_destination" = "$expanded_source" ]]; then
|
37
44
|
die_with_error "Source and Destination Ruby are the same ($expanded_destination)"
|
45
|
+
|
38
46
|
elif [[ ! -d "$rvm_rubies_path/$expanded_source" ]]; then
|
39
47
|
die_with_error "Ruby '$expanded_source' is not installed - please install it first."
|
48
|
+
|
40
49
|
elif [[ ! -d "$rvm_rubies_path/$expanded_destination" ]]; then
|
41
50
|
die_with_error "Ruby '$expanded_destination' is not installed - please install it first."
|
42
51
|
fi
|
43
52
|
|
44
53
|
echo "Are you sure you wish to MOVE gems from $expanded_source to $expanded_destination?"
|
54
|
+
|
45
55
|
confirm "This will overwrite existing gems in $expanded_destination and remove them from $expanded_source" || return 1
|
46
56
|
|
47
57
|
echo "Moving gemsets..."
|
48
58
|
|
49
59
|
while read -r origin_gemset; do
|
50
60
|
[[ "$origin_gemset" = "$expanded_source" || "$origin_gemset" = "$expanded_source$rvm_gemset_separator"* ]] || continue
|
61
|
+
|
51
62
|
gemset_name="${origin_gemset/*${rvm_gemset_separator}/}"
|
63
|
+
|
52
64
|
destination_gemset="$expanded_destination"
|
65
|
+
|
53
66
|
if [[ -n "$gemset_name" ]]; then
|
54
67
|
destination_gemset="$destination_gemset$rvm_gemset_separator$gemset_name"
|
55
68
|
fi
|
69
|
+
|
56
70
|
echo "Moving $origin_gemset to $destination_gemset"
|
57
71
|
|
58
|
-
|
72
|
+
rm -rf "$rvm_gems_path/$destination_gemset"
|
59
73
|
result="$?"
|
60
|
-
|
74
|
+
|
75
|
+
[[ $result -gt 0 ]] && die_with_error "Unable to remove gem directory '$rvm_gems_path/$destination_gemset'" "$result"
|
61
76
|
|
62
77
|
mv "$rvm_gems_path/$origin_gemset" "$rvm_gems_path/$destination_gemset"
|
63
78
|
result="$?"
|
64
|
-
|
79
|
+
|
80
|
+
[[ $result -gt 0 ]] && die_with_error "Unable to move '$rvm_gems_path/$origin_gemset' to '$rvm_gems_path/$destination_gemset'" "$result"
|
65
81
|
|
66
82
|
echo "Making gemset $destination_gemset pristine."
|
83
|
+
|
67
84
|
__rvm_run_with_env "gemset.pristine" "$destination_gemset" "rvm gemset pristine"
|
85
|
+
|
68
86
|
done < <("$rvm_scripts_path/list" gemsets strings | \grep "^$expanded_source")
|
69
|
-
|
87
|
+
|
70
88
|
|
71
89
|
if confirm 'Do you wish to move over aliases?' ; then
|
90
|
+
|
72
91
|
while read -r alias_pair; do
|
92
|
+
|
73
93
|
migrate_ruby_name="${alias_pair/*=/}"
|
94
|
+
|
74
95
|
migrate_alias_name="${alias_pair/=*/}"
|
96
|
+
|
75
97
|
if [[ "$migrate_ruby_name" = "$expanded_source" || "$migrate_ruby_name" = "$expanded_source$rvm_gemset_separator"* ]]; then
|
98
|
+
|
76
99
|
migrate_new_alias_name="${migrate_ruby_name/$expanded_source/$expanded_destination}"
|
100
|
+
|
77
101
|
echo "Updating alias $migrate_alias_name to point to $migrate_new_alias_name"
|
102
|
+
|
78
103
|
"$rvm_scripts_path/alias" delete "$migrate_alias_name" >/dev/null 2>&1
|
104
|
+
|
79
105
|
"$rvm_scripts_path/alias" create "$migrate_alias_name" "$migrate_new_alias_name" >/dev/null 2>&1
|
80
106
|
fi
|
107
|
+
|
81
108
|
done < "$rvm_config_path/alias"
|
82
|
-
|
109
|
+
|
83
110
|
fi
|
84
111
|
|
85
112
|
if confirm "Do you wish to move over wrappers?" ; then
|
113
|
+
|
86
114
|
origin_wrappers_path="$rvm_wrappers_path/$expanded_source"
|
87
|
-
|
115
|
+
|
116
|
+
binaries=($(cd "$rvm_bin_path" ; find * -type f -maxdepth 0))
|
117
|
+
|
118
|
+
for binary_name in "${binaries[@]}" ; do
|
119
|
+
|
88
120
|
full_bin_path="$rvm_bin_path/$binary_name"
|
121
|
+
|
89
122
|
[[ ! -L "$full_bin_path" ]] && continue
|
123
|
+
|
90
124
|
expanded_symlink="$(readlink "$full_bin_path")"
|
125
|
+
|
91
126
|
[[ "$expanded_symlink" != "$origin_wrappers_path/"* ]] && continue
|
127
|
+
|
92
128
|
linked_binary_name="$(basename "$expanded_symlink")"
|
129
|
+
|
93
130
|
[[ "$binary_name" = "$linked_binary_name-$expanded_source" || "$binary_name" = "$expanded_source" ]] && continue
|
131
|
+
|
94
132
|
new_wrapper_destination="${expanded_symlink/$expanded_source/$expanded_destination}"
|
133
|
+
|
95
134
|
ln -sf "$new_wrapper_destination" "$full_bin_path"
|
96
135
|
done
|
97
|
-
unset origin_wrappers_path full_bin_path expanded_symlink linked_binary_name new_wrapper_destination
|
98
136
|
fi
|
99
137
|
|
100
138
|
if confirm "Do you also wish to completely remove $expanded_source (inc. archive)?" ; then
|
139
|
+
|
101
140
|
__rvm_run_with_env "rvm.remove" "$expanded_source" "rvm remove $expanded_source --archive --gems"
|
141
|
+
|
102
142
|
fi
|
103
143
|
|
104
144
|
echo "Successfully migrated $expanded_source to $expanded_destination"
|
data/scripts/override_gem
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
|
-
if [[
|
3
|
+
if [[ ${rvm_leave_gem_alone:-0} -eq 0 ]]; then
|
4
4
|
gem() {
|
5
|
-
|
6
|
-
|
5
|
+
local result
|
6
|
+
|
7
|
+
command gem "$@" ; result="$?"
|
8
|
+
|
7
9
|
hash -r
|
8
|
-
|
10
|
+
|
11
|
+
return $result
|
9
12
|
}
|
10
|
-
fi
|
13
|
+
fi
|
data/scripts/package
CHANGED
@@ -7,8 +7,8 @@ source "$rvm_scripts_path/base"
|
|
7
7
|
|
8
8
|
# Tools to make managing ruby dependencies inside of rvm easier.
|
9
9
|
args=($*)
|
10
|
-
action="${args[0]}"
|
11
|
-
library="${args[1]}"
|
10
|
+
action="${args[0]:-""}"
|
11
|
+
library="${args[1]:-""}"
|
12
12
|
args="$(echo ${args[@]:2})"
|
13
13
|
|
14
14
|
install_package() {
|
@@ -191,12 +191,15 @@ llvm() {
|
|
191
191
|
)
|
192
192
|
}
|
193
193
|
|
194
|
-
if [[
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
194
|
+
if [[ -n "$library" ]] ; then
|
195
|
+
case $library in
|
196
|
+
readline|iconv|curl|openssl|zlib|autoconf|ncurses|pkgconfig|gettext|glib|mono|llvm|libxml2)
|
197
|
+
${library}
|
198
|
+
;;
|
199
|
+
*)
|
200
|
+
"$rvm_scripts_path/log" "error" "Package '${library}' is unknown."
|
201
|
+
;;
|
202
|
+
esac
|
200
203
|
else
|
201
204
|
"$rvm_scripts_path/log" "info" "Usage: 'rvm package {install,uninstall} {readline,iconv,curl,openssl,zlib,autoconf,ncurses,pkgconfig,gettext,glib,mono,llvm,libxml2}'"
|
202
205
|
exit 1
|
data/scripts/patches
CHANGED
@@ -12,27 +12,45 @@ __rvm_patch_lookup_path() {
|
|
12
12
|
}
|
13
13
|
|
14
14
|
__rvm_expand_patch_name() {
|
15
|
-
local name
|
15
|
+
local name expanded_patch_name
|
16
|
+
|
17
|
+
name="${1:-""}"
|
18
|
+
|
16
19
|
[[ -z "$name" ]] && return 0
|
20
|
+
|
17
21
|
expanded_patch_name="$("$rvm_scripts_path/patchsets" show "$name")"
|
22
|
+
|
18
23
|
if [[ "$?" == "0" ]]; then
|
19
24
|
echo "${expanded_patch_name}"
|
25
|
+
|
20
26
|
elif [[ "$name" != "default" ]]; then
|
21
27
|
echo "$name"
|
22
|
-
fi
|
28
|
+
fi
|
29
|
+
|
30
|
+
return 0
|
23
31
|
}
|
24
32
|
|
25
33
|
# Return the full patch for a given patch.
|
26
34
|
__rvm_lookup_full_patch_path() {
|
35
|
+
local extension patch_path directory directories
|
36
|
+
|
27
37
|
# Absolute path, pwd and then finally the rvm patches path.
|
28
|
-
|
38
|
+
directories=($(__rvm_patch_lookup_path))
|
39
|
+
|
40
|
+
for directory in "${directories[@]}" ; do
|
41
|
+
|
29
42
|
for extension in {"",.patch,.diff}; do
|
43
|
+
|
30
44
|
patch_path="${directory}${1}${extension}"
|
45
|
+
|
31
46
|
if [[ -s "$patch_path" ]]; then
|
32
47
|
echo "$patch_path"
|
33
|
-
return
|
48
|
+
return 0
|
34
49
|
fi
|
35
|
-
|
36
|
-
|
50
|
+
|
51
|
+
done
|
52
|
+
|
53
|
+
done
|
54
|
+
|
37
55
|
return 1
|
38
56
|
}
|
data/scripts/repair
CHANGED
@@ -15,7 +15,8 @@ repair_symlinks() {
|
|
15
15
|
for executable_name in $(\find \. -type l); do
|
16
16
|
[[ -e "$executable_name" || "$(readlink "$executable_name")" != "$rvm_wrappers_path/"* ]] && continue
|
17
17
|
if [[ -f "$executable_name" ]] ; then
|
18
|
-
"$rvm_scripts_path/log" "info"
|
18
|
+
"$rvm_scripts_path/log" "info" \
|
19
|
+
"Removing stale symlink from $(basename "$executable_name")"
|
19
20
|
\rm -f "$executable_name"
|
20
21
|
fi
|
21
22
|
done
|
@@ -24,31 +25,69 @@ repair_symlinks() {
|
|
24
25
|
|
25
26
|
# Regenerates each symlink file.
|
26
27
|
repair_environments() {
|
27
|
-
|
28
|
+
local environment_name environments
|
29
|
+
|
30
|
+
environments=($(cd "$rvm_environments_path" ; find * -type f -maxdepth 0))
|
31
|
+
|
32
|
+
for environment_name in "${environments[@]}" ; do
|
33
|
+
|
28
34
|
[[ -L "$rvm_environments_path/$environment_name" ]] && continue
|
29
|
-
|
35
|
+
|
36
|
+
"$rvm_scripts_path/log" "info" \
|
37
|
+
"Regenerating environment file for '$environment_name'"
|
38
|
+
|
30
39
|
[[ -f "$rvm_environments_path/$environment_name" ]] && \rm -f "$rvm_environments_path/$environment_name"
|
31
|
-
|
32
|
-
|
40
|
+
|
41
|
+
(
|
42
|
+
source "$rvm_scripts_path/base"
|
43
|
+
|
44
|
+
__rvm_become "$environment_name"
|
45
|
+
|
46
|
+
__rvm_ensure_has_environment_files
|
47
|
+
)
|
48
|
+
|
49
|
+
done
|
33
50
|
}
|
34
51
|
|
35
52
|
# Removes archives that have incorrect md5 sums.
|
36
53
|
repair_archives() {
|
37
|
-
|
54
|
+
|
55
|
+
local archive_file archives stored_md5sum
|
56
|
+
|
57
|
+
archives=($(cd "$rvm_archives_path" ; find * -type f -maxdepth 0))
|
58
|
+
|
59
|
+
for archive_file in "${archives[@]}" ; do
|
60
|
+
|
38
61
|
[[ -f "$rvm_archives_path/$archive_file" ]] || continue
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
62
|
+
|
63
|
+
stored_md5sum="$($rvm_scripts_path/db "$rvm_config_path/md5" "$archive_file" | head -n1)"
|
64
|
+
|
65
|
+
if [[ -n "$stored_md5sum" ]] ; then
|
66
|
+
|
67
|
+
if [[ ! "$rvm_scripts_path/md5" "$rvm_archives_path/$archive_file" "$stored_md5sum" ]] ; then
|
68
|
+
|
69
|
+
"$rvm_scripts_path/log" "info" "Removing archive for '$archive_file' - Incorrect md5 checksum."
|
70
|
+
|
71
|
+
rm -rf "$rvm_archives_path/$archive_file"
|
72
|
+
fi
|
43
73
|
fi
|
44
|
-
done
|
74
|
+
done
|
75
|
+
|
76
|
+
return 0
|
45
77
|
}
|
46
78
|
|
47
79
|
repair_all() {
|
80
|
+
|
48
81
|
repair_symlinks
|
82
|
+
|
49
83
|
repair_archives
|
84
|
+
|
50
85
|
repair_environments
|
51
|
-
|
86
|
+
|
87
|
+
"$rvm_scripts_path/log" "info" \
|
88
|
+
"symlinks, archives and environments have been repaired."
|
89
|
+
|
90
|
+
return 0
|
52
91
|
}
|
53
92
|
|
54
93
|
args=($*)
|
@@ -56,7 +95,8 @@ action="${args[0]}"
|
|
56
95
|
args="$(echo ${args[@]:1}) " # Strip trailing / leading / extra spacing.
|
57
96
|
|
58
97
|
if [[ -z "$action" ]]; then
|
59
|
-
usage
|
98
|
+
usage
|
99
|
+
exit $?
|
60
100
|
fi
|
61
101
|
|
62
102
|
case "$action" in
|
data/scripts/rvm
CHANGED
@@ -63,7 +63,8 @@ if [[ $rvm_loaded_flag -eq 0 || $rvm_reload_flag -eq 1 ]] ; then
|
|
63
63
|
|
64
64
|
rvm_loaded_flag=1
|
65
65
|
|
66
|
-
rvm_version="$(
|
66
|
+
rvm_version="$(awk '/:/{printf $NF"."}' "$rvm_path/lib/VERSION.yml")"
|
67
|
+
export rvm_version="${rvm_version/%.}"
|
67
68
|
|
68
69
|
alias rvm-restart="source '${rvm_path}/scripts/rvm'"
|
69
70
|
|
data/scripts/rvm-install
CHANGED
@@ -383,7 +383,8 @@ for file in rvm rvmsudo rvm-shell rvm-auto-ruby ; do
|
|
383
383
|
[[ -s "$rvm_bin_path/$file" ]] && chmod +x "$rvm_bin_path/$file"
|
384
384
|
done; unset file
|
385
385
|
printf "\n Copying manpages into place."
|
386
|
-
|
386
|
+
|
387
|
+
for man_file in $(builtin cd "$install_source_path/man" ; find * -type f -maxdepth 0 -print); do
|
387
388
|
rm -rf "$rvm_man_path/$man_file"
|
388
389
|
cp -R "$install_source_path/man/$man_file" "$rvm_man_path/"
|
389
390
|
done
|
data/scripts/selector
CHANGED
@@ -217,7 +217,7 @@ __rvm_select() {
|
|
217
217
|
rvm_ruby_minor_version="${rvm_ruby_version//*.}"
|
218
218
|
fi
|
219
219
|
|
220
|
-
rvm_ruby_package_name="${rvm_ruby_package_name:-$
|
220
|
+
rvm_ruby_package_name="${rvm_ruby_package_name:-${rvm_ruby_string//-n*}}"
|
221
221
|
rvm_ruby_home="$rvm_rubies_path/$rvm_ruby_string"
|
222
222
|
rvm_ruby_log_path="$rvm_log_path/$rvm_ruby_string"
|
223
223
|
rvm_ruby_repo_path="$rvm_repo_path/$rvm_ruby_string"
|
@@ -241,24 +241,19 @@ __rvm_select() {
|
|
241
241
|
|
242
242
|
\mkdir -p "$rvm_ruby_log_path"
|
243
243
|
|
244
|
-
export rvm_ruby_interpreter rvm_ruby_version rvm_ruby_repo_url rvm_ruby_package_name rvm_ruby_url rvm_ruby_patch_level rvm_ruby_configure
|
244
|
+
export rvm_ruby_interpreter rvm_ruby_version rvm_ruby_repo_url rvm_ruby_package_name rvm_ruby_url rvm_ruby_patch_level rvm_ruby_configure rvm_configure_flags rvm_ruby_make rvm_ruby_make_install rvm_ruby_revision rvm_ruby_tag rvm_ruby_release_version rvm_ruby_major_version rvm_ruby_minor_version rvm_gemset_name rvm_gems_path rvm_ruby_gem_home rvm_path rvm_src_path rvm_bin_path rvm_ruby_binary rvm_ruby_home rvm_log_path rvm_ruby_log_path rvm_src_path rvm_ruby_src_path rvm_ruby_irbrc rvm_ruby_selected_flag rvm_ruby_string
|
245
245
|
else
|
246
246
|
rvm_ruby_interpreter="${rvm_ruby_interpreter:-system}"
|
247
247
|
fi
|
248
248
|
}
|
249
249
|
|
250
250
|
__rvm_use() {
|
251
|
-
rvm_head_flag=${rvm_head_flag:-0}
|
252
|
-
rvm_default_flag=${rvm_default_flag:-0}
|
253
|
-
rvm_rvmrc_flag=${rvm_rvmrc_flag:-0}
|
254
|
-
rvm_verbose_flag=${rvm_verbose_flag:-0}
|
255
|
-
rvm_sticky_flag=${rvm_sticky_flag:-0}
|
256
251
|
rvm_gemset_name="${rvm_gemset_name:-""}"
|
257
252
|
rvm_ruby_gem_home="${rvm_ruby_gem_home:-""}"
|
258
253
|
rvm_wrapper_name="${rvm_wrapper_name:-""}"
|
259
254
|
rvm_ruby_alias="${rvm_ruby_alias:-""}"
|
260
255
|
|
261
|
-
local new_path
|
256
|
+
local new_path binary full_binary_path
|
262
257
|
|
263
258
|
if [[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] ; then __rvm_select "$@" ; fi
|
264
259
|
|
@@ -282,7 +277,6 @@ __rvm_use() {
|
|
282
277
|
fi
|
283
278
|
|
284
279
|
# Check binaries, remove under the condition they're symlinks.
|
285
|
-
local binary full_binary_path
|
286
280
|
if [[ "$rvm_selfcontained" = "0" ]] ; then
|
287
281
|
|
288
282
|
for binary in ruby gem irb ri rdoc rake erb testrb ; do
|
@@ -311,7 +305,7 @@ __rvm_use() {
|
|
311
305
|
|
312
306
|
if [[ ! -d "$MY_RUBY_HOME" ]] ; then
|
313
307
|
"$rvm_scripts_path/log" "warn" "$rvm_ruby_interpreter $rvm_ruby_string is not installed."
|
314
|
-
if [[ $rvm_install_on_use_flag -eq 1 ]] ; then
|
308
|
+
if [[ ${rvm_install_on_use_flag:-0} -eq 1 ]] ; then
|
315
309
|
"$rvm_scripts_path/manage" "install" "$rvm_ruby_string"
|
316
310
|
else
|
317
311
|
"$rvm_scripts_path/log" "info" "To install do: 'rvm install $rvm_ruby_string'"
|
@@ -323,14 +317,17 @@ __rvm_use() {
|
|
323
317
|
__rvm_ensure_has_environment_files
|
324
318
|
|
325
319
|
[[ ${rvm_verbose_flag:-0} -gt 0 ]] && \
|
326
|
-
"$rvm_scripts_path/log" "info"
|
320
|
+
"$rvm_scripts_path/log" "info" \
|
321
|
+
"Using ${GEM_HOME/${rvm_gemset_separator:-'@'}/ with gemset }"
|
327
322
|
|
328
323
|
new_path="$GEM_HOME/bin:$rvm_ruby_global_gems_path/bin:$MY_RUBY_HOME/bin:$rvm_bin_path:$(__rvm_remove_rvm_from_path ; printf "$PATH")"
|
329
324
|
fi
|
330
325
|
|
331
326
|
# Export ruby string and gem set me for extrenal scripts to take advantage of them.
|
332
327
|
if [[ -n "${rvm_ruby_string:-""}" ]] ; then export rvm_ruby_string ; fi
|
328
|
+
|
333
329
|
if [[ -n "${rvm_gemset_name:-""}" ]] ; then export rvm_gemset_name ; fi
|
330
|
+
|
334
331
|
if [[ -n "$new_path" ]]; then
|
335
332
|
export PATH="$new_path"
|
336
333
|
unset new_path
|
@@ -342,18 +339,21 @@ __rvm_use() {
|
|
342
339
|
local environment_id="$(__rvm_environment_identifier)"
|
343
340
|
|
344
341
|
if [[ ${rvm_default_flag:-0} -eq 1 && "default" != "${rvm_ruby_interpreter:-""}" ]] ; then
|
342
|
+
|
345
343
|
if [[ "${rvm_selfcontained:-""}" = "0" ]] ; then
|
346
344
|
# Sets up the default wrappers.
|
347
345
|
"$rvm_scripts_path/wrapper" "$rvm_ruby_string" --no-prefix
|
348
346
|
else
|
349
347
|
"$rvm_scripts_path/wrapper" "$rvm_scripts_path" "default"
|
350
348
|
fi
|
349
|
+
|
351
350
|
if [[ "system" = "$rvm_ruby_interpreter" ]] ; then
|
352
351
|
"$rvm_scripts_path/alias" delete default &> /dev/null
|
353
|
-
\find "$rvm_bin_path" -name 'default_*' -maxdepth
|
352
|
+
\find "$rvm_bin_path" -name 'default_*' -maxdepth 0 -delete
|
354
353
|
\rm -f "$rvm_config_path/default"
|
355
354
|
\rm -f "$rvm_environments_path/default"
|
356
355
|
\rm -rf "$rvm_wrappers_path/default"
|
356
|
+
|
357
357
|
else
|
358
358
|
RUBY_VERSION="$("$rvm_ruby_home/bin/ruby" -v | sed 's#^\(.*\) (.*$#\1#')"
|
359
359
|
export GEM_HOME GEM_PATH BUNDLE_PATH MY_RUBY_HOME RUBY_VERSION
|
@@ -432,103 +432,131 @@ __rvm_ruby_string() {
|
|
432
432
|
|
433
433
|
__rvm_unset_ruby_variables
|
434
434
|
|
435
|
-
|
435
|
+
strings=(${ruby_string//-/ })
|
436
|
+
|
437
|
+
for string in "${strings[@]}" ; do
|
438
|
+
|
439
|
+
# TODO: case...
|
440
|
+
|
441
|
+
case "$string" in
|
442
|
+
head)
|
436
443
|
|
437
|
-
if [[ "head" = "$string" ]] ; then
|
438
444
|
rvm_ruby_revision="head"
|
439
445
|
rvm_ruby_patch_level="" ; rvm_ruby_revision="" ; rvm_ruby_tag=""
|
440
446
|
export rvm_head_flag=1
|
447
|
+
;;
|
441
448
|
|
442
|
-
|
449
|
+
system)
|
443
450
|
rvm_ruby_interpreter="system"
|
444
451
|
rvm_ruby_patch_level="" ; rvm_ruby_tag="" ; rvm_head_flag=0 ; rvm_ruby_revision="" ; rvm_ruby_version="" ; rvm_gemset_name=""
|
445
452
|
return 0
|
453
|
+
;;
|
446
454
|
|
447
|
-
|
455
|
+
nightly)
|
448
456
|
rvm_ruby_version="nightly"
|
449
457
|
rvm_nightly_flag=1
|
450
458
|
break
|
459
|
+
;;
|
451
460
|
|
452
|
-
|
461
|
+
preview*)
|
453
462
|
rvm_ruby_patch_level="$string"
|
463
|
+
;;
|
454
464
|
|
455
|
-
|
465
|
+
rc[[:digit:]]*)
|
456
466
|
rvm_ruby_patch_level="$string"
|
467
|
+
;;
|
457
468
|
|
458
|
-
|
469
|
+
[[:digit:]]\.[[:digit:]]*)
|
459
470
|
rvm_ruby_version="$string"
|
460
|
-
rvm_ruby_revision=""
|
471
|
+
rvm_ruby_revision=""
|
472
|
+
rvm_ruby_tag=""
|
473
|
+
;;
|
461
474
|
|
462
|
-
|
475
|
+
p[[:digit:]]*)
|
463
476
|
rvm_ruby_patch_level="$string"
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
477
|
+
;;
|
478
|
+
|
479
|
+
#elif [[ -n "${rvm_ruby_version:-""}" ]] && "$rvm_scripts_path/match" "$string" "^
|
480
|
+
[[:digit:]][[:digit:]]*)
|
481
|
+
|
482
|
+
case "${rvm_ruby_interpreter:-""}" in
|
483
|
+
ree)
|
484
|
+
rvm_ruby_patch_level="$string"
|
485
|
+
rvm_ruby_revision=""
|
486
|
+
;;
|
487
|
+
|
488
|
+
rbx)
|
489
|
+
rvm_ruby_patch_level="$string"
|
490
|
+
;;
|
491
|
+
|
492
|
+
maglev)
|
493
|
+
rvm_ruby_version="$string"
|
494
|
+
rvm_ruby_revision=""
|
495
|
+
rvm_ruby_patch_level=""
|
496
|
+
;;
|
497
|
+
|
498
|
+
*)
|
499
|
+
rvm_ruby_revision="r$string"
|
500
|
+
;;
|
501
|
+
esac
|
502
|
+
;;
|
503
|
+
|
504
|
+
r[[:digit:]]*)
|
481
505
|
rvm_ruby_patch_level=""
|
482
506
|
rvm_ruby_revision="$string"
|
507
|
+
;;
|
483
508
|
|
484
|
-
|
509
|
+
s[[:digit:]]*)
|
485
510
|
rvm_ruby_revision=""
|
486
511
|
rvm_ruby_sha="$string"
|
512
|
+
;;
|
487
513
|
|
488
|
-
|
514
|
+
tv[[:digit:]]* | t[[:digit:]]*)
|
489
515
|
rvm_ruby_patch_level="" ; rvm_ruby_revision=""
|
490
516
|
rvm_ruby_tag="$string"
|
517
|
+
;;
|
491
518
|
|
492
|
-
|
519
|
+
m[[:digit:]]*)
|
493
520
|
rvm_ruby_mode="$string"
|
521
|
+
;;
|
494
522
|
|
495
|
-
|
523
|
+
u[[:alnum:]]*)
|
496
524
|
rvm_ruby_patch_level="" ; rvm_ruby_revision="" ; rvm_ruby_tag="" ; rvm_ruby_patch=""
|
497
525
|
rvm_ruby_user_tag="$string"
|
526
|
+
;;
|
498
527
|
|
499
|
-
|
528
|
+
b[[:digit:]][[:digit:]]*)
|
500
529
|
rvm_ruby_bits="$string"
|
530
|
+
;;
|
501
531
|
|
502
|
-
|
532
|
+
n*)
|
503
533
|
rvm_ruby_name="${string/n/}"
|
534
|
+
;;
|
504
535
|
|
505
|
-
|
506
|
-
# NOTE: The space at the end of each of the above strings is *very* important.
|
536
|
+
ruby|rbx|jruby|macruby|ree|rubinius|maglev|mput|shyouhei|ironruby)
|
507
537
|
rvm_ruby_interpreter="$string"
|
538
|
+
;;
|
508
539
|
|
509
|
-
|
510
|
-
"$rvm_scripts_path/log" "error"
|
540
|
+
*)
|
541
|
+
"$rvm_scripts_path/log" "error" \
|
542
|
+
"Unknown ruby string component: '$string'"
|
511
543
|
return 1
|
512
|
-
|
544
|
+
;;
|
545
|
+
esac
|
513
546
|
done
|
514
547
|
|
515
|
-
# Unspecified interpreter
|
516
548
|
if [[ -z "${rvm_ruby_interpreter:-""}" ]] ; then
|
517
|
-
|
518
|
-
|
519
|
-
rvm_ruby_interpreter="ruby"
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
elif "$rvm_scripts_path/match" "$rvm_ruby_version" "^1.[2-4]" ; then
|
525
|
-
rvm_ruby_interpreter="jruby"
|
526
|
-
fi
|
549
|
+
# Detect interpreter based on version.
|
550
|
+
case "$rvm_ruby_version" in
|
551
|
+
1.[8-9]*) rvm_ruby_interpreter="ruby" ;;
|
552
|
+
0.[5-6]*) rvm_ruby_interpreter="macruby" ;;
|
553
|
+
1.[2-7]*) rvm_ruby_interpreter="jruby" ;;
|
554
|
+
esac
|
527
555
|
fi
|
528
556
|
|
529
557
|
# Unspecified version
|
530
558
|
rvm_ruby_version=${rvm_ruby_version:-""}
|
531
|
-
if [[ -z "${rvm_ruby_version:-""}"
|
559
|
+
if [[ -z "${rvm_ruby_version:-""}" && ${rvm_head_flag:-0} -eq 0 ]] ; then
|
532
560
|
rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "${rvm_ruby_interpreter}_version")"}
|
533
561
|
fi
|
534
562
|
|
@@ -568,15 +596,15 @@ __rvm_ruby_string() {
|
|
568
596
|
|
569
597
|
if [[ -n "${rvm_ruby_patch_level:-""}" ]] ; then
|
570
598
|
|
571
|
-
rvm_ruby_patch_level="$
|
599
|
+
rvm_ruby_patch_level="${rvm_ruby_patch_level/#pp/p}"
|
572
600
|
rvm_ruby_string="${rvm_ruby_string}-${rvm_ruby_patch_level}"
|
573
601
|
|
574
|
-
if [[ "ree" = "${rvm_ruby_interpreter:-""}"
|
575
|
-
rvm_ruby_string="$
|
602
|
+
if [[ "ree" = "${rvm_ruby_interpreter:-""}" || "rbx" = "${rvm_ruby_interpreter:-""}" ]] ; then
|
603
|
+
rvm_ruby_string="${rvm_ruby_string//-p*/-}"
|
576
604
|
|
577
605
|
else
|
578
|
-
rvm_ruby_string="$
|
579
|
-
rvm_ruby_string="$
|
606
|
+
rvm_ruby_string="${rvm_ruby_string//-pp/-p}"
|
607
|
+
rvm_ruby_string="${rvm_ruby_string//-prc/-rc}"
|
580
608
|
fi
|
581
609
|
fi
|
582
610
|
fi
|
@@ -589,13 +617,13 @@ __rvm_ruby_string() {
|
|
589
617
|
# Select a gemset based on CLI set options and environment.
|
590
618
|
# This only sets 'rvm_ruby_gem_home'
|
591
619
|
__rvm_gemset_select() {
|
620
|
+
|
592
621
|
command -v gem > /dev/null
|
593
622
|
if [[ $? -gt 0 ]] ; then return 0 ; fi # Stop if no 'gem' command is available.
|
594
623
|
|
595
624
|
rvm_ruby_gem_home=${rvm_ruby_gem_home:-""}
|
596
625
|
rvm_gemset_name=${rvm_gemset_name:-""}
|
597
|
-
|
598
|
-
rvm_ruby_global_gems_path="$rvm_gems_path/${rvm_ruby_string}${rvm_gemset_separator}global"
|
626
|
+
rvm_ruby_global_gems_path="$rvm_path/gems/${rvm_ruby_string:-""}${rvm_gemset_separator}global"
|
599
627
|
|
600
628
|
if [[ -z "${rvm_gemset_name:-""}" ]] ; then
|
601
629
|
|
@@ -612,14 +640,15 @@ __rvm_gemset_select() {
|
|
612
640
|
fi
|
613
641
|
fi
|
614
642
|
|
615
|
-
if
|
643
|
+
if ! echo "${rvm_gemset_name:-""}" | grep -q "^[[:digit:]]\.[[:digit:]]" ; then
|
644
|
+
|
616
645
|
rvm_ruby_gem_home="$rvm_gems_path/${rvm_ruby_string}${rvm_gemset_separator}${rvm_gemset_name}"
|
617
646
|
|
618
647
|
else
|
619
|
-
if [[ -n "${rvm_ruby_string:-""}"
|
648
|
+
if [[ -n "${rvm_ruby_string:-""}" && "${rvm_ruby_interpreter:-""}" != "system" ]] ; then
|
620
649
|
rvm_ruby_gem_home="$rvm_gems_path/$rvm_ruby_string"
|
621
650
|
|
622
|
-
elif [[ -z "${GEM_HOME:-""}"
|
651
|
+
elif [[ -z "${GEM_HOME:-""}" && -n "$(command -v gem)" ]] ; then
|
623
652
|
rvm_ruby_gem_home=$(gem env gemdir)
|
624
653
|
|
625
654
|
elif [[ -n "${GEM_HOME:-""}" ]] ; then
|
@@ -654,10 +683,14 @@ __rvm_gemset_select() {
|
|
654
683
|
|
655
684
|
# If the gemset does not exist, then notify the user as such and abort the action.
|
656
685
|
if [[ -n "${rvm_gemset_name:-""}" && ! -d "$rvm_ruby_gem_home" ]] ; then
|
686
|
+
|
657
687
|
if [[ ${rvm_gemset_create_on_use_flag:-0} -ne 1 && ${rvm_create_flag:-0} -ne 1 && ${rvm_delete_flag:-0} -ne 1 ]] ; then
|
688
|
+
|
658
689
|
"$rvm_scripts_path/log" "error" "Gemset '$rvm_gemset_name' does not exist, rvm gemset create '$rvm_gemset_name' first."
|
690
|
+
|
659
691
|
return 1
|
660
692
|
fi
|
693
|
+
|
661
694
|
elif [[ ${rvm_delete_flag:-0} -eq 1 ]] ; then
|
662
695
|
return 1
|
663
696
|
fi
|
@@ -705,7 +738,7 @@ __rvm_gemset_use() {
|
|
705
738
|
"$rvm_scripts_path/log" "info" "Now using gemset '${rvm_gemset_name:-default}'"
|
706
739
|
fi
|
707
740
|
|
708
|
-
rvm_ruby_gem_home="$
|
741
|
+
rvm_ruby_gem_home="${GEM_HOME//${rvm_gemset_separator}*}${rvm_gemset_separator}${rvm_gemset_name}"
|
709
742
|
GEM_HOME="$rvm_ruby_gem_home"
|
710
743
|
BUNDLE_PATH="$rvm_ruby_gem_home"
|
711
744
|
GEM_PATH="$rvm_ruby_gem_home/bin:$(echo "$GEM_HOME" | sed 's/'${rvm_gemset_separator}'.*$//')${rvm_gemset_separator}global/bin"
|
@@ -719,7 +752,7 @@ __rvm_gemset_use() {
|
|
719
752
|
|
720
753
|
__rvm_gemset_clear() {
|
721
754
|
rvm_gemset_name="" ; shift # TODO: Is this shift necessary???
|
722
|
-
rvm_ruby_gem_home="$
|
755
|
+
rvm_ruby_gem_home="${GEM_HOME//${rvm_gemset_separator:-'@'}*}"
|
723
756
|
rvm_ruby_global_gems_path="$(echo "${GEM_HOME:-""}" | sed 's/'${rvm_gemset_separator}'.*$//')${rvm_gemset_separator}global"
|
724
757
|
GEM_HOME=$rvm_ruby_gem_home
|
725
758
|
BUNDLE_PATH="$rvm_ruby_gem_home"
|