rvm 0.1.43 → 0.1.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/binscripts/rvm +25 -14
- data/binscripts/rvm-auto-ruby +18 -0
- data/binscripts/rvm-prompt +6 -0
- data/binscripts/rvm-shell +14 -12
- data/binscripts/rvm-update-head +6 -2
- data/binscripts/rvm-update-latest +5 -2
- data/binscripts/rvmsudo +8 -1
- data/config/db +1 -1
- data/config/known +1 -1
- data/config/md5 +4 -4
- data/contrib/gemset_snapshot +1 -1
- data/contrib/install-system-wide +12 -10
- data/gemsets/default.gems +0 -1
- data/gemsets/global.gems +0 -1
- data/install +38 -31
- data/lib/VERSION.yml +1 -1
- data/rvm.gemspec +5 -2
- data/scripts/cd +4 -0
- data/scripts/cli +21 -19
- data/scripts/completion +32 -26
- data/scripts/environment-convertor +60 -0
- data/scripts/gemsets +23 -14
- data/scripts/help +1 -1
- data/scripts/info +6 -6
- data/scripts/initialize +11 -13
- data/scripts/install +38 -31
- data/scripts/irbrc.rb +5 -0
- data/scripts/list +7 -8
- data/scripts/maglev +1 -1
- data/scripts/manage +37 -24
- data/scripts/manpages +1 -1
- data/scripts/notes +2 -0
- data/scripts/repair +66 -0
- data/scripts/rubygems +5 -0
- data/scripts/rvm +25 -12
- data/scripts/rvm-install +38 -31
- data/scripts/selector +160 -33
- data/scripts/set +2 -2
- data/scripts/snapshot +1 -1
- data/scripts/update +38 -31
- data/scripts/utility +87 -179
- metadata +7 -4
data/scripts/rubygems
CHANGED
@@ -95,6 +95,11 @@ else
|
|
95
95
|
exit 1
|
96
96
|
fi
|
97
97
|
|
98
|
+
# Update the rubygems to the current.
|
99
|
+
if [[ "$version" = "current" ]]; then
|
100
|
+
version="$(__rvm_db "${rvm_ruby_interpreter}_rubygems_version")"
|
101
|
+
version="${rvm_rubygems_version:-"$(__rvm_db "rubygems_version")"}"
|
102
|
+
fi
|
98
103
|
rubygems_setup
|
99
104
|
|
100
105
|
exit $result
|
data/scripts/rvm
CHANGED
@@ -4,22 +4,35 @@
|
|
4
4
|
# http://rvm.beginrescueend.com
|
5
5
|
# http://gitub.com/wayneeseguin/rvm
|
6
6
|
|
7
|
+
rvm_reload_flag="${rvm_reload_flag:-0}"
|
8
|
+
rvm_loaded_flag="${rvm_loaded_flag:-0}"
|
7
9
|
if [[ "$rvm_loaded_flag" != "1" ]] || [[ "$rvm_reload_flag" = "1" ]] ; then
|
8
10
|
unset rvm_reload_flag
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
if
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
if [[ -z "$rvm_ignore_rvmrc" ]]; then
|
13
|
+
for rvmrc in /etc/rvmrc $HOME/.rvmrc ; do
|
14
|
+
if [[ -f "$rvmrc" ]] ; then
|
15
|
+
if grep -q '^\s*rvm .*$' $rvmrc ; then
|
16
|
+
printf "\nError: $rvmrc is for rvm settings only.\nrvm CLI may NOT be called from within $rvmrc. \nSkipping the loading of $rvmrc"
|
17
|
+
return 1
|
18
|
+
else
|
19
|
+
source "$rvmrc"
|
20
|
+
fi
|
17
21
|
fi
|
22
|
+
done
|
23
|
+
fi
|
24
|
+
|
25
|
+
# Set the default sandboxed value.
|
26
|
+
if [[ -z "$rvm_sandboxed" ]]; then
|
27
|
+
if [[ "root" = "$(whoami)" ]] || [[ -n "$rvm_prefix" && "$rvm_prefix" != "$HOME"/* ]]; then
|
28
|
+
rvm_sandboxed=0
|
29
|
+
else
|
30
|
+
rvm_sandboxed=1
|
18
31
|
fi
|
19
|
-
|
32
|
+
fi
|
20
33
|
|
21
34
|
if [[ -z "$rvm_prefix" ]] ; then
|
22
|
-
if [[ "
|
35
|
+
if [[ "$rvm_sandboxed" = "0" ]] ; then
|
23
36
|
rvm_prefix="/usr/local"
|
24
37
|
else
|
25
38
|
rvm_prefix="$HOME/."
|
@@ -28,7 +41,7 @@ if [[ "$rvm_loaded_flag" != "1" ]] || [[ "$rvm_reload_flag" = "1" ]] ; then
|
|
28
41
|
|
29
42
|
if [[ -z "$rvm_path" ]] ; then
|
30
43
|
unset rvm_path
|
31
|
-
if [[ "
|
44
|
+
if [[ "$rvm_sandboxed" = "0" ]] ; then
|
32
45
|
rvm_path="$rvm_prefix/rvm"
|
33
46
|
else
|
34
47
|
if [[ -d "$HOME/.rvm" ]] && [[ -s "$HOME/.rvm/scripts/rvm" ]]; then
|
@@ -47,7 +60,7 @@ if [[ "$rvm_loaded_flag" != "1" ]] || [[ "$rvm_reload_flag" = "1" ]] ; then
|
|
47
60
|
elif [[ -d "$rvm_path/scripts" ]] && [[ -s "$rvm_path/scripts/rvm" ]]; then
|
48
61
|
rvm_scripts_path="$rvm_path/scripts"
|
49
62
|
else
|
50
|
-
if [[ "
|
63
|
+
if [[ "$rvm_sandboxed" = "0" ]] ; then
|
51
64
|
rvm_scripts_path="/usr/local/rvm"
|
52
65
|
else
|
53
66
|
rvm_scripts_path="$HOME/.rvm"
|
@@ -67,7 +80,7 @@ if [[ "$rvm_loaded_flag" != "1" ]] || [[ "$rvm_reload_flag" = "1" ]] ; then
|
|
67
80
|
|
68
81
|
rvm_loaded_flag=1
|
69
82
|
|
70
|
-
rvm_version="$(cat "${rvm_path}/lib/VERSION.yml" | tail -n 3 | sed 's/^.*: //g' | tr "\n" '.' | sed 's/\.$//')" ; export rvm_version
|
83
|
+
rvm_version="$(cat "${rvm_path}/lib/VERSION.yml" | tail -n 3 | sed 's/^.*: //g' | \tr "\n" '.' | sed 's/\.$//')" ; export rvm_version
|
71
84
|
|
72
85
|
alias rvm-restart="source '${rvm_path}/scripts/rvm'"
|
73
86
|
|
data/scripts/rvm-install
CHANGED
@@ -1,10 +1,18 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
|
+
if [[ -z "$rvm_sandboxed" ]]; then
|
4
|
+
if [[ "root" = "$(whoami)" ]] || [[ -n "$rvm_prefix" && "$rvm_prefix" != "$HOME"/* ]]; then
|
5
|
+
export rvm_sandboxed=0
|
6
|
+
else
|
7
|
+
export rvm_sandboxed=1
|
8
|
+
fi
|
9
|
+
fi
|
10
|
+
|
3
11
|
unset rvm_auto_flag
|
4
12
|
|
5
|
-
install_source_path
|
13
|
+
install_source_path="$(dirname "$0" | sed 's#\/scripts$##')"
|
6
14
|
if [[ -d "$install_source_path/scripts" ]] && [[ -s "$install_source_path/scripts/utility" ]] ; then
|
7
|
-
builtin cd $install_source_path
|
15
|
+
builtin cd "$install_source_path"
|
8
16
|
fi
|
9
17
|
|
10
18
|
source scripts/version
|
@@ -53,7 +61,7 @@ done
|
|
53
61
|
|
54
62
|
if [[ -z "$rvm_prefix" ]] ; then
|
55
63
|
__rvm_load_rvmrc
|
56
|
-
if [[ "
|
64
|
+
if [[ "$rvm_sandboxed" = "0" ]] ; then
|
57
65
|
rvm_prefix="${rvm_prefix:-"/usr/local/"}"
|
58
66
|
else
|
59
67
|
rvm_prefix="${rvm_prefix:-"$HOME/."}"
|
@@ -64,7 +72,7 @@ if [[ -z "$rvm_path" ]] ; then rvm_path="${rvm_prefix}rvm" ; fi
|
|
64
72
|
|
65
73
|
source scripts/initialize
|
66
74
|
|
67
|
-
if grep -q 'scripts/rvm' $HOME/.bash* || grep -q 'scripts/rvm' $HOME/.zsh
|
75
|
+
if grep -q 'scripts/rvm' $HOME/.bash* 2>/dev/null || grep -q 'scripts/rvm' $HOME/.zsh* 2>/dev/null; then
|
68
76
|
if [[ -d "$rvm_path" ]] && [[ -s "${rvm_path}/scripts/rvm" ]] ; then
|
69
77
|
export upgrade_flag=1
|
70
78
|
else
|
@@ -114,7 +122,7 @@ fi
|
|
114
122
|
|
115
123
|
spinner
|
116
124
|
|
117
|
-
mkdir -p $rvm_archives_path $rvm_src_path $rvm_log_path $rvm_bin_path $rvm_gems_path $rvm_rubies_path $rvm_config_path $rvm_hooks_path $rvm_tmp_path
|
125
|
+
mkdir -p "$rvm_archives_path" "$rvm_src_path" "$rvm_log_path" "$rvm_bin_path" "$rvm_gems_path" "$rvm_rubies_path" "$rvm_config_path" "$rvm_hooks_path" "$rvm_tmp_path"
|
118
126
|
|
119
127
|
for file in README LICENCE ; do
|
120
128
|
spinner
|
@@ -148,7 +156,7 @@ done
|
|
148
156
|
# Bin Scripts
|
149
157
|
#
|
150
158
|
# Cleanse and purge...
|
151
|
-
for file in rvm-prompt rvm rvmsudo rvm-shell ; do
|
159
|
+
for file in rvm-prompt rvm rvmsudo rvm-shell rvm-auto-ruby ; do
|
152
160
|
spinner && perl -e 'sleep 0.2'
|
153
161
|
rm -f "$rvm_bin_path/$file"
|
154
162
|
cp -f "$source_path/binscripts/$file" $rvm_bin_path/
|
@@ -183,29 +191,30 @@ fi
|
|
183
191
|
# Initial Interpreter Gemsets.
|
184
192
|
#
|
185
193
|
spinner
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
done ; unset destination destination_path
|
194
|
+
if [[ -d gemsets/ ]] ; then
|
195
|
+
mkdir -p "$rvm_gemsets_path"
|
196
|
+
for gemset_file in $(cd gemsets ; find . -iname '*.gems' | sed 's/^\.\///') ; do
|
197
|
+
destination="$rvm_gemsets_path/$gemset_file"
|
198
|
+
destination_path="$(dirname "$destination")"
|
199
|
+
if [[ ! -s "$destination" ]] ; then
|
200
|
+
mkdir -p "$destination_path"
|
201
|
+
cp "gemsets/$gemset_file" "$destination"
|
202
|
+
fi
|
203
|
+
done ; unset destination destination_path gemset_file
|
204
|
+
fi
|
196
205
|
|
197
206
|
spinner
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
done ; unset destination destination_path
|
208
|
-
|
207
|
+
if [[ -d patchsets/ ]] ; then
|
208
|
+
mkdir -p "$rvm_patchsets_path"
|
209
|
+
for patchset_file in $(cd patchsets ; find . -iname '*' | sed 's/^\.\///') ; do
|
210
|
+
destination="$rvm_patchsets_path/$patchset_file"
|
211
|
+
destination_path="$(dirname "$destination")"
|
212
|
+
if [[ ! -s "$destination" ]] ; then
|
213
|
+
mkdir -p "$destination_path"
|
214
|
+
cp "patchsets/$patchset_file" "$destination"
|
215
|
+
fi
|
216
|
+
done ; unset destination destination_path patchset_file
|
217
|
+
fi
|
209
218
|
|
210
219
|
#
|
211
220
|
# Migrate ~/.rvm/ruby-X,jruby-X,... to ~/.rvm/rubies/ for 0.1.0.
|
@@ -276,7 +285,7 @@ fi
|
|
276
285
|
|
277
286
|
printf "\n Correct permissions for base binaries in $rvm_bin_path..."
|
278
287
|
mkdir -p $rvm_bin_path
|
279
|
-
for file in rvm rvmsudo rvm-shell ; do
|
288
|
+
for file in rvm rvmsudo rvm-shell rvm-auto-ruby; do
|
280
289
|
[[ -s "$rvm_bin_path/$file" ]] && chmod +x "$rvm_bin_path/$file"
|
281
290
|
done; unset file
|
282
291
|
printf "\n Copying manpages into place."
|
@@ -285,9 +294,7 @@ for man_file in $(\ls "$install_source_path/man"); do
|
|
285
294
|
cp -R "$install_source_path/man/$man_file" "$rvm_man_path/"
|
286
295
|
done
|
287
296
|
|
288
|
-
|
289
|
-
./scripts/notes
|
290
|
-
fi
|
297
|
+
[[ "$upgrade_flag" = 0 ]] && ./scripts/notes
|
291
298
|
|
292
299
|
name="$(awk -F= '/^[[:space:]]*name/{print $2}' ~/.gitconfig 2>/dev/null)"
|
293
300
|
printf "\n\n${name:-"$(whoami)"},\n"
|
data/scripts/selector
CHANGED
@@ -4,9 +4,10 @@
|
|
4
4
|
__rvm_select() {
|
5
5
|
if [[ -z "$rvm_ruby_string" ]] ; then
|
6
6
|
rvm_ruby_string="${rvm_ruby_interpreter}"
|
7
|
-
if [[
|
8
|
-
if [[
|
9
|
-
if [[
|
7
|
+
if [[ -n "$rvm_ruby_version" ]] ; then rvm_ruby_string="$rvm_ruby_string-$rvm_ruby_version" ; fi
|
8
|
+
if [[ -n "$rvm_ruby_patch_level" ]] ; then rvm_ruby_string="$rvm_ruby_string-$rvm_ruby_patch_level" ; fi
|
9
|
+
if [[ -n "$rvm_ruby_revision" ]] ; then rvm_ruby_string="$rvm_ruby_string-$rvm_ruby_revision" ; fi
|
10
|
+
if [[ -n "$rvm_ruby_name" ]]; then rvm_ruby_name="$rvm_ruby_string-n$rvm_ruby_name"; fi
|
10
11
|
fi
|
11
12
|
|
12
13
|
__rvm_ruby_string
|
@@ -22,10 +23,8 @@ __rvm_select() {
|
|
22
23
|
rvm_ruby_revision="head"
|
23
24
|
__rvm_db "macruby_repo_url" "rvm_ruby_repo_url"
|
24
25
|
rvm_url="$rvm_ruby_repo_url"
|
25
|
-
rvm_ruby_string="${rvm_ruby_interpreter}-head"
|
26
26
|
elif [[ "nightly" = "$rvm_ruby_version" ]] ; then
|
27
27
|
__rvm_db "macruby_nightly_url" "rvm_url"
|
28
|
-
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
29
28
|
rvm_ruby_package_name="${rvm_ruby_interpreter}_nightly-${rvm_ruby_version}"
|
30
29
|
rvm_ruby_package_file="$rvm_ruby_package_name"
|
31
30
|
else
|
@@ -56,7 +55,6 @@ __rvm_select() {
|
|
56
55
|
rvm_url="$rvm_url/$rvm_ruby_package_file"
|
57
56
|
else
|
58
57
|
unset rvm_ruby_patch_level rvm_ruby_version
|
59
|
-
rvm_ruby_string="$rvm_ruby_interpreter-head"
|
60
58
|
fi
|
61
59
|
;;
|
62
60
|
|
@@ -64,7 +62,6 @@ __rvm_select() {
|
|
64
62
|
unset rvm_ruby_patch_level
|
65
63
|
if [[ ! -z "$rvm_head_flag" ]] ; then
|
66
64
|
rvm_ruby_version="head"
|
67
|
-
rvm_ruby_string="jruby-head"
|
68
65
|
rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "jruby_repo_url")}"
|
69
66
|
rvm_url="${rvm_ruby_repo_url:-$(__rvm_db "jruby_repo_url")}"
|
70
67
|
else
|
@@ -73,7 +70,6 @@ __rvm_select() {
|
|
73
70
|
jruby_url="$(__rvm_db "jruby_url")"
|
74
71
|
rvm_ruby_package_file="${rvm_ruby_interpreter}-bin-${rvm_ruby_version}"
|
75
72
|
rvm_ruby_package_name="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
76
|
-
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
77
73
|
rvm_url="${jruby_url}/${rvm_ruby_version}/${rvm_ruby_package_file}.tar.gz"
|
78
74
|
unset jruby_url
|
79
75
|
fi
|
@@ -86,7 +82,6 @@ __rvm_select() {
|
|
86
82
|
maglev_url="$(__rvm_db "maglev_url")"
|
87
83
|
if [[ ! -z "$rvm_head_flag" ]] ; then
|
88
84
|
rvm_ruby_version="head"
|
89
|
-
rvm_ruby_string="maglev-head"
|
90
85
|
rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "maglev_repo_url")}"
|
91
86
|
rvm_url="${rvm_ruby_repo_url:-$(__rvm_db "maglev_repo_url")}"
|
92
87
|
else
|
@@ -96,7 +91,6 @@ __rvm_select() {
|
|
96
91
|
rvm_gemstone_package_file="GemStone-${rvm_ruby_version}.${system}-${arch}"
|
97
92
|
rvm_ruby_version="${rvm_ruby_version:-"$(__rvm_db "maglev_version")"}"
|
98
93
|
rvm_ruby_package_name="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
99
|
-
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
100
94
|
rvm_url="${rvm_ruby_url:-"$maglev_url/${rvm_ruby_package_file}.${rvm_archive_extension}"}"
|
101
95
|
rvm_gemstone_url="${rvm_gemstone_url:-"$maglev_url/${rvm_gemstone_package_file}.${rvm_archive_extension}"}"
|
102
96
|
export MAGLEV_HOME="$rvm_rubies_path/$rvm_ruby_string"
|
@@ -107,14 +101,12 @@ __rvm_select() {
|
|
107
101
|
unset rvm_ruby_patch_level
|
108
102
|
if [[ "$rvm_head_flag" -eq 1 ]] ; then
|
109
103
|
rvm_ruby_version="head"
|
110
|
-
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
111
104
|
rvm_ruby_package_name="${rvm_ruby_string}"
|
112
105
|
rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "ironruby_repo_url")}"
|
113
106
|
rvm_url="${rvm_ruby_repo_url:-$(__rvm_db "ironruby_repo_url")}"
|
114
107
|
else
|
115
108
|
rvm_archive_extension="zip"
|
116
109
|
rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "ironruby_version")"}
|
117
|
-
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
118
110
|
rvm_ruby_package_name="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
119
111
|
rvm_ruby_package_file="${rvm_ruby_interpreter}-${rvm_ruby_version}.${rvm_archive_extension}"
|
120
112
|
rvm_url="$(__rvm_db "ironruby_${rvm_ruby_version}_url")${rvm_ruby_package_file}"
|
@@ -127,9 +119,6 @@ __rvm_select() {
|
|
127
119
|
rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "ree_version")"}
|
128
120
|
if [[ ! -z "$rvm_ruby_patch_level" ]] ; then
|
129
121
|
rvm_ruby_patch_level="$(echo $rvm_ruby_patch_level | sed 's#^p##')"
|
130
|
-
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}-${rvm_ruby_patch_level}"
|
131
|
-
elif [[ "$rvm_head_flag" = 1 ]] ; then
|
132
|
-
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}-head"
|
133
122
|
fi
|
134
123
|
|
135
124
|
if [[ "$rvm_ruby_version" != "head" ]] ; then
|
@@ -150,7 +139,7 @@ __rvm_select() {
|
|
150
139
|
mput|shyouhei)
|
151
140
|
rvm_ruby_interpreter="mput"
|
152
141
|
rvm_ruby_version="head"
|
153
|
-
rvm_ruby_string
|
142
|
+
rvm_ruby_string=$(echo $rvm_ruby_string | sed -e 's/shyouhei/mput/g')
|
154
143
|
unset rvm_ruby_patch_level
|
155
144
|
rvm_ruby_repo_url=${rvm_mput_repo_url:-"$(__rvm_db "shyouhei_repo_url")"}
|
156
145
|
rvm_url=$rvm_ruby_repo_url
|
@@ -199,7 +188,7 @@ __rvm_select() {
|
|
199
188
|
rvm_minor_version=$(echo $rvm_ruby_version | awk -F'.' '{ print $3 }')
|
200
189
|
fi
|
201
190
|
|
202
|
-
rvm_ruby_package_name="${rvm_ruby_package_name:-$rvm_ruby_string}"
|
191
|
+
rvm_ruby_package_name="${rvm_ruby_package_name:-$(echo $rvm_ruby_string | sed -e 's/-n.*$//')}"
|
203
192
|
rvm_ruby_home="$rvm_rubies_path/$rvm_ruby_string"
|
204
193
|
rvm_ruby_log_path="$rvm_log_path/$rvm_ruby_string"
|
205
194
|
rvm_ruby_repo_path="$rvm_repo_path/$rvm_ruby_string"
|
@@ -221,13 +210,12 @@ __rvm_select() {
|
|
221
210
|
|
222
211
|
rvm_ruby_selected_flag=1
|
223
212
|
|
224
|
-
mkdir -p $rvm_ruby_log_path
|
213
|
+
mkdir -p "$rvm_ruby_log_path"
|
225
214
|
|
226
215
|
export rvm_ruby_interpreter rvm_ruby_version rvm_ruby_repo_url rvm_ruby_package_name rvm_url rvm_ruby_patch_level rvm_ruby_configure rvm_ruby_configure_flags rvm_ruby_make rvm_ruby_make_install rvm_ruby_revision rvm_ruby_tag rvm_release_version rvm_major_version rvm_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
|
227
216
|
else
|
228
217
|
rvm_ruby_interpreter="${rvm_ruby_interpreter:-system}"
|
229
218
|
fi
|
230
|
-
|
231
219
|
}
|
232
220
|
|
233
221
|
__rvm_use() {
|
@@ -237,21 +225,23 @@ __rvm_use() {
|
|
237
225
|
if [[ "system" = "$rvm_ruby_interpreter" ]] ; then
|
238
226
|
|
239
227
|
unset GEM_HOME GEM_PATH BUNDLE_PATH MY_RUBY_HOME RUBY_VERSION IRBRC
|
240
|
-
new_path="$(echo $PATH | tr ':' '\n' | awk '$0 !~ /rvm/' | paste -sd : -)"
|
228
|
+
new_path="$(echo $PATH | \tr ':' '\n' | awk '$0 !~ /rvm/' | paste -sd : -)"
|
241
229
|
new_path="$rvm_bin_path:$new_path"
|
242
230
|
if [[ -s $rvm_config_path/system ]] ; then
|
243
231
|
grep "MY_RUBY_HOME='$rvm_rubies_path" "$rvm_config_path/system" > /dev/null
|
244
232
|
if [[ $? -eq 0 ]] ; then
|
245
|
-
rm -f $rvm_config_path/system # 'system' should *not* point to an rvm ruby.
|
233
|
+
[[ -f "$rvm_config_path/system" ]] && rm -f $rvm_config_path/system # 'system' should *not* point to an rvm ruby.
|
246
234
|
else
|
247
|
-
source $rvm_config_path/system
|
235
|
+
source "$rvm_config_path/system"
|
248
236
|
fi
|
249
237
|
fi
|
250
238
|
|
251
|
-
|
239
|
+
# Check binaries, remove under the condition they're symlinks.
|
240
|
+
if [[ "$rvm_sandboxed" = "0" ]] ; then
|
252
241
|
for binary in ruby gem irb ri rdoc rake erb testrb ; do
|
253
|
-
|
254
|
-
|
242
|
+
full_binary_path="$rvm_bin_path/$binary"
|
243
|
+
[[ -L "$full_binary_path" ]] && rm -f "$full_binary_path"
|
244
|
+
done; unset binary full_binary_path
|
255
245
|
fi
|
256
246
|
|
257
247
|
if [[ ! -z "$rvm_verbose_flag" ]] ; then
|
@@ -286,10 +276,10 @@ __rvm_use() {
|
|
286
276
|
__rvm_ensure_has_enviroment_files
|
287
277
|
|
288
278
|
if [[ ! -z "$rvm_verbose_flag" ]] ; then
|
289
|
-
$rvm_scripts_path/log "info" "Using $(basename $GEM_HOME | tr '-' ' ' | sed 's/'${rvm_gemset_separator}'/ with gemset /')"
|
279
|
+
$rvm_scripts_path/log "info" "Using $(basename $GEM_HOME | \tr '-' ' ' | sed 's/'${rvm_gemset_separator}'/ with gemset /')"
|
290
280
|
fi
|
291
281
|
|
292
|
-
new_path="$(echo $PATH | tr ':' '\n' | awk '$0 !~ /rvm/' | paste -sd : -)"
|
282
|
+
new_path="$(echo $PATH | \tr ':' '\n' | awk '$0 !~ /rvm/' | paste -sd : -)"
|
293
283
|
new_path="$GEM_HOME/bin:$rvm_ruby_global_gems_path/bin:$MY_RUBY_HOME/bin:$rvm_bin_path:$new_path"
|
294
284
|
fi
|
295
285
|
|
@@ -302,16 +292,16 @@ __rvm_use() {
|
|
302
292
|
environment_id="$(__rvm_environment_identifier)"
|
303
293
|
|
304
294
|
if [[ ! -z "$rvm_default_flag" ]] && [[ "default" != "$rvm_ruby_interpreter" ]] ; then
|
305
|
-
if [[ "
|
295
|
+
if [[ "$rvm_sandboxed" = "0" ]] ; then
|
306
296
|
# Sets up the default wrappers.
|
307
297
|
$rvm_scripts_path/wrapper "$rvm_ruby_string"
|
308
298
|
fi
|
309
299
|
if [[ "system" = "$rvm_ruby_interpreter" ]] ; then
|
310
300
|
$rvm_scripts_path/alias delete default &> /dev/null
|
311
|
-
rm -f $rvm_config_path/default
|
312
301
|
rm -f $rvm_bin_path/default*
|
313
|
-
rm -f $
|
314
|
-
rm -f $
|
302
|
+
[[ -f $rvm_config_path/default ]] && rm -f $rvm_config_path/default
|
303
|
+
[[ -f $rvm_environments_path/default ]] && rm -f $rvm_environments_path/default
|
304
|
+
[[ -f $rvm_wrappers_path/default ]] && rm -f $rvm_wrappers_path/default
|
315
305
|
else
|
316
306
|
RUBY_VERSION="$($rvm_ruby_home/bin/ruby -v | sed 's#^\(.*\) (.*$#\1#')"
|
317
307
|
export GEM_HOME GEM_PATH BUNDLE_PATH MY_RUBY_HOME RUBY_VERSION
|
@@ -362,13 +352,17 @@ __rvm_ruby_string() {
|
|
362
352
|
fi
|
363
353
|
fi
|
364
354
|
|
355
|
+
# Preparation for alias tags
|
356
|
+
rvm_ruby_alias=$(echo "$rvm_ruby_string" | awk -F+ '{print $2}')
|
357
|
+
rvm_ruby_string=$(echo "$rvm_ruby_string" | awk -F+ '{print $1}')
|
358
|
+
|
365
359
|
set_name=$(echo "$rvm_ruby_string" | awk -F${rvm_gemset_separator} '{print $2}')
|
366
360
|
if [[ ! -z "$set_name" ]] ; then rvm_gemset_name="$set_name" ; fi
|
367
361
|
ruby_string=$(echo "$rvm_ruby_string" | awk -F${rvm_gemset_separator} '{print $1}')
|
368
362
|
|
369
363
|
__rvm_unset_ruby_variables
|
370
364
|
|
371
|
-
for string in $(echo $ruby_string | tr '-' ' ') ; do
|
365
|
+
for string in $(echo $ruby_string | \tr '-' ' ') ; do
|
372
366
|
if [[ "head" = "$string" ]] ; then
|
373
367
|
rvm_ruby_revision="head"
|
374
368
|
unset rvm_ruby_patch_level rvm_ruby_revision rvm_ruby_tag
|
@@ -390,7 +384,7 @@ __rvm_ruby_string() {
|
|
390
384
|
unset rvm_ruby_revision rvm_ruby_tag
|
391
385
|
elif $rvm_scripts_path/match "$string" "^p[0-9]" ; then
|
392
386
|
rvm_ruby_patch_level="$string"
|
393
|
-
elif $rvm_scripts_path/match "$string" "^[0-9][0-9]" ; then
|
387
|
+
elif [[ -n "$rvm_ruby_version" ]] && $rvm_scripts_path/match "$string" "^[0-9][0-9]" ; then
|
394
388
|
if [[ "ree" = "$rvm_ruby_interpreter" ]] ; then
|
395
389
|
rvm_ruby_patch_level="$string"
|
396
390
|
unset rvm_ruby_revision
|
@@ -418,6 +412,8 @@ __rvm_ruby_string() {
|
|
418
412
|
rvm_ruby_user_tag="$string"
|
419
413
|
elif $rvm_scripts_path/match "$string" "^b[0-9][0-9]" ; then
|
420
414
|
rvm_ruby_bits="$string"
|
415
|
+
elif $rvm_scripts_path/match "$string" "^n" ; then
|
416
|
+
rvm_ruby_name="${string/n/}"
|
421
417
|
elif $rvm_scripts_path/match "ruby rbx jruby macruby ree rubinius maglev mput shyouhei ironruby " "$string " ; then
|
422
418
|
# NOTE: The space at the end of each of the above strings is *very* important.
|
423
419
|
rvm_ruby_interpreter="$string"
|
@@ -480,5 +476,136 @@ __rvm_ruby_string() {
|
|
480
476
|
fi
|
481
477
|
fi
|
482
478
|
fi
|
479
|
+
|
480
|
+
if [[ -n "${rvm_ruby_name}" ]] ; then
|
481
|
+
rvm_ruby_string="${rvm_ruby_string}-n${rvm_ruby_name}"
|
482
|
+
fi
|
483
|
+
}
|
484
|
+
|
485
|
+
# Select a gemset based on CLI set options and environment.
|
486
|
+
# This only sets 'rvm_ruby_gem_home'
|
487
|
+
__rvm_gemset_select() {
|
488
|
+
command -v gem > /dev/null
|
489
|
+
if [[ $? -gt 0 ]] ; then return 0 ; fi # Stop if no 'gem' command is available.
|
490
|
+
|
491
|
+
rvm_ruby_global_gems_path="$rvm_gems_path/${rvm_ruby_string}${rvm_gemset_separator}global"
|
492
|
+
|
493
|
+
#if [[ -z "$(echo $rvm_ruby_gem_home | grep "$rvm_path")" ]] ; then
|
494
|
+
# $rvm_scripts_path/log "warn" "Gemsets cannot be used with system ruby installs (yet)."
|
495
|
+
#fi
|
496
|
+
|
497
|
+
if [[ -z "$rvm_gemset_name" ]] ; then
|
498
|
+
# No longer defaulting to 'sticky' gem sets.
|
499
|
+
# Set 'rvm_sticky_flag=1' in ~/.rvmrc to enable.
|
500
|
+
if [[ -n "$rvm_sticky_flag" ]] ; then
|
501
|
+
if [[ -n "$GEM_HOME" ]] ; then
|
502
|
+
rvm_gemset_name=$(echo $GEM_HOME | xargs basename | awk -F${rvm_gemset_separator} '{print $2}')
|
503
|
+
fi
|
504
|
+
if [[ -n "$rvm_ruby_gem_home" ]] ; then
|
505
|
+
rvm_gemset_name=$(echo $rvm_ruby_gem_home | xargs basename | awk -F${rvm_gemset_separator} '{print $2}')
|
506
|
+
fi
|
507
|
+
fi
|
508
|
+
|
509
|
+
if [[ -n "$rvm_gemset_name" ]] && ! $rvm_scripts_path/match "$rvm_gemset_name" "^[0-9]\.[0-9]" ; then
|
510
|
+
rvm_ruby_gem_home="$rvm_gems_path/${rvm_ruby_string}${rvm_gemset_separator}${rvm_gemset_name}"
|
511
|
+
else
|
512
|
+
if [[ -n "$rvm_ruby_string" ]] && [[ "$rvm_ruby_interpreter" != "system" ]] ; then
|
513
|
+
rvm_ruby_gem_home="$rvm_gems_path/$rvm_ruby_string"
|
514
|
+
elif [[ -z "$GEM_HOME" ]] && [[ -n "$(command -v gem)" ]] ; then
|
515
|
+
rvm_ruby_gem_home=$(gem env gemdir)
|
516
|
+
elif [[ -n "$GEM_HOME" ]] ; then
|
517
|
+
rvm_ruby_gem_home="$GEM_HOME"
|
518
|
+
else
|
519
|
+
unset rvm_ruby_gem_home
|
520
|
+
fi
|
521
|
+
fi
|
522
|
+
if [[ -z "$rvm_gemset_name" ]] ; then unset rvm_gemset_name ; fi
|
523
|
+
else
|
524
|
+
gemset=$(echo "$rvm_ruby_gem_home" | awk -F'@' '{print $NF}')
|
525
|
+
if [[ -z "$rvm_ruby_string" ]] && [[ -n "${GEM_HOME/@*/}" ]] ; then
|
526
|
+
rvm_ruby_string=$(basename ${GEM_HOME/@*/})
|
527
|
+
fi
|
528
|
+
|
529
|
+
if [[ -n "$rvm_ruby_string" ]] ; then
|
530
|
+
if [[ -z "$rvm_ruby_gem_home" ]] || [[ -n "$gemset" ]] ; then
|
531
|
+
rvm_ruby_gem_home="$rvm_gems_path/${rvm_ruby_string}${rvm_gemset_separator}${rvm_gemset_name}"
|
532
|
+
elif [[ -n "$gemset" ]] && [[ "$rvm_gemset_name" != "$gemset" ]] ; then
|
533
|
+
rvm_ruby_gem_home="$rvm_gems_path/${rvm_ruby_string}${rvm_gemset_separator}${rvm_gemset_name}"
|
534
|
+
fi ; unset gemset
|
535
|
+
else
|
536
|
+
$rvm_scripts_path/log "error" "Gemsets can not be used with non rvm controlled rubies (currently)."
|
537
|
+
return 1
|
538
|
+
fi
|
539
|
+
fi
|
540
|
+
|
541
|
+
# If the gemset does not exist, then notify the user as such and abort the action.
|
542
|
+
if [[ -n "$rvm_gemset_name" ]] && [[ ! -d "$rvm_ruby_gem_home" ]] ; then
|
543
|
+
if [[ "$rvm_gemset_create_on_use_flag" -ne 1 ]] && [[ "$rvm_create_flag" -ne 1 ]] && [[ "$rvm_delete_flag" -ne 1 ]] ; then
|
544
|
+
$rvm_scripts_path/log "error" "Gemset '$rvm_gemset_name' does not exist, rvm gemset create '$rvm_gemset_name' first."
|
545
|
+
return 1
|
546
|
+
fi
|
547
|
+
elif [[ "$rvm_delete_flag" -eq 1 ]] ; then
|
548
|
+
return 1
|
549
|
+
fi
|
550
|
+
|
551
|
+
if [[ -z "$rvm_ruby_gem_home" ]] && [[ -n $rvm_ruby_string ]] ; then
|
552
|
+
rvm_ruby_gem_home="$rvm_gems_path/$rvm_ruby_string"
|
553
|
+
rvm_ruby_global_gems_path="$rvm_gems_path/$rvm_ruby_string${rvm_gemset_separator}global"
|
554
|
+
fi
|
555
|
+
|
556
|
+
rvm_ruby_gem_path="$rvm_ruby_gem_home:$rvm_ruby_global_gems_path"
|
557
|
+
|
558
|
+
# Ensure that the ruby gem home exists.
|
559
|
+
mkdir -p "$rvm_ruby_gem_home"
|
560
|
+
if [[ -n "$rvm_ruby_gem_home" ]] && echo "$rvm_ruby_gem_home" | grep -q 'rvm'; then
|
561
|
+
if __rvm_using_gemset_globalcache && [[ ! -L "$rvm_ruby_gem_home/cache" ]]; then
|
562
|
+
mv "$rvm_ruby_gem_home/cache/"*.gem "$rvm_gems_cache_path/" 2>/dev/null
|
563
|
+
rm -rf "$rvm_ruby_gem_home/cache"
|
564
|
+
ln -nfs "$rvm_gems_cache_path" "$rvm_ruby_gem_home/cache"
|
565
|
+
fi
|
566
|
+
fi
|
567
|
+
|
568
|
+
export rvm_ruby_gem_path rvm_ruby_gem_home
|
569
|
+
}
|
570
|
+
|
571
|
+
# Use a gemset specified by 'rvm_ruby_gem_home'
|
572
|
+
__rvm_gemset_use() {
|
573
|
+
#if [[ -z "$(echo $rvm_ruby_gem_home | grep "rvm")" ]] ; then
|
574
|
+
# $rvm_scripts_path/log "warn" "Gemsets cannot be used with system ruby installs (yet)."
|
575
|
+
#fi
|
576
|
+
if [[ -n "$rvm_ruby_gem_home" ]] ; then
|
577
|
+
if [[ ! -d "$rvm_ruby_gem_home" ]] ; then
|
578
|
+
if [[ "$rvm_gemset_create_on_use_flag" -eq 1 ]] || [[ "$rvm_create_flag" -eq 1 ]]; then
|
579
|
+
$rvm_scripts_path/gemsets create $rvm_gemset_name
|
580
|
+
else
|
581
|
+
$rvm_scripts_path/log "error" "Gemset '$rvm_gemset_name' does not exist, rvm gemset create '$rvm_gemset_name' first."
|
582
|
+
return 1
|
583
|
+
fi
|
584
|
+
fi
|
585
|
+
|
586
|
+
if [[ "$rvm_interactive" -eq 1 ]] || [[ "$rvm_verbose_flag" -eq 1 ]] ; then
|
587
|
+
$rvm_scripts_path/log "info" "Now using gemset '${rvm_gemset_name:-default}'"
|
588
|
+
fi
|
589
|
+
|
590
|
+
rvm_ruby_gem_home="$(echo $GEM_HOME | sed 's/'${rvm_gemset_separator}'.*$//')${rvm_gemset_separator}${rvm_gemset_name}"
|
591
|
+
GEM_HOME="$rvm_ruby_gem_home"
|
592
|
+
BUNDLE_PATH="$rvm_ruby_gem_home"
|
593
|
+
GEM_PATH="$rvm_ruby_gem_home/bin:$(echo $GEM_HOME | sed 's/'${rvm_gemset_separator}'.*$//')${rvm_gemset_separator}global/bin"
|
594
|
+
export rvm_ruby_gem_home GEM_HOME BUNDLE_PATH GEM_PATH
|
595
|
+
|
596
|
+
__rvm_use # Now ensure the selection takes effect for the environment.
|
597
|
+
fi
|
598
|
+
return 0
|
599
|
+
}
|
600
|
+
|
601
|
+
__rvm_gemset_clear() {
|
602
|
+
unset rvm_gemset_name ; shift
|
603
|
+
rvm_ruby_gem_home="$(echo $GEM_HOME | sed "s#${rvm_gemset_separator:-'@'}.*\$##g")"
|
604
|
+
rvm_ruby_global_gems_path="$(echo $GEM_HOME | sed 's/'${rvm_gemset_separator}'.*$//')${rvm_gemset_separator}global"
|
605
|
+
GEM_HOME=$rvm_ruby_gem_home
|
606
|
+
BUNDLE_PATH="$rvm_ruby_gem_home"
|
607
|
+
GEM_PATH="$rvm_ruby_gem_home/bin:$rvm_ruby_global_gems_path/bin"
|
608
|
+
export rvm_ruby_gem_home rvm_ruby_global_gems_path GEM_HOME BUNDLE_PATH GEM_PATH
|
609
|
+
__rvm_use # Now ensure the selection takes effect for the environment.
|
483
610
|
}
|
484
611
|
|