rvm 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/install +163 -101
- data/lib/VERSION.yml +1 -1
- data/rvm.gemspec +1 -1
- data/scripts/cli +37 -19
- data/scripts/gemsets +15 -11
- data/scripts/install +163 -101
- data/scripts/rvm-install +163 -101
- data/scripts/selector +56 -7
- data/scripts/update +163 -101
- metadata +3 -3
data/install
CHANGED
@@ -17,8 +17,6 @@ if [[ -d "$install_source_path/scripts" ]] && [[ -s "$install_source_path/script
|
|
17
17
|
builtin cd "$install_source_path"
|
18
18
|
fi
|
19
19
|
|
20
|
-
sleep=0.010
|
21
|
-
|
22
20
|
source scripts/version
|
23
21
|
source scripts/utility
|
24
22
|
|
@@ -42,16 +40,116 @@ check_rubyopt_conditions() {
|
|
42
40
|
fi
|
43
41
|
}
|
44
42
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
43
|
+
andand_return_instructions() {
|
44
|
+
printf "
|
45
|
+
This means that if you see something like:
|
46
|
+
|
47
|
+
'[ -z \"\$PS1\" ] && return'
|
48
|
+
|
49
|
+
then you change this line to:
|
50
|
+
|
51
|
+
if [[ -n \"\$PS1\" ]] ; then
|
52
|
+
|
53
|
+
# ... original content that was below the '&& return' line ...
|
54
|
+
|
55
|
+
fi # <= be sure to close the if at the end of the .bashrc.
|
56
|
+
|
57
|
+
# This is a good place to source rvm v v v
|
58
|
+
[[ -s \"\$HOME/.rvm/scripts/rvm\" ]] && source \"\$HOME/.rvm/scripts/rvm\" # This loads RVM into a shell session.
|
59
|
+
|
60
|
+
EOF - This marks the end of the .bashrc file
|
61
|
+
"
|
62
|
+
}
|
63
|
+
|
64
|
+
installation_complete() {
|
65
|
+
printf "
|
66
|
+
You must now complete the install by loading RVM in new shells.
|
67
|
+
|
68
|
+
1) Place the folowing line at the end of your shell's loading files
|
69
|
+
(.bashrc or .bash_profile for bash and .zshrc for zsh),
|
70
|
+
after all PATH/variable settings:
|
71
|
+
|
72
|
+
[[ -s \"\$HOME/.rvm/scripts/rvm\" ]] && source \"\$HOME/.rvm/scripts/rvm\" # This loads RVM into a shell session.
|
73
|
+
|
74
|
+
You only need to add this line the first time you install rvm.
|
75
|
+
|
76
|
+
2) Ensure that there is no 'return' from inside the ~/.bashrc file,
|
77
|
+
otherwise rvm may be prevented from working properly.
|
78
|
+
|
79
|
+
$(andand_return_instructions)
|
80
|
+
|
81
|
+
Be absolutely *sure* to REMOVE the '&& return'.
|
82
|
+
|
83
|
+
If you wish to DRY up your config you can 'source ~/.bashrc' at the bottom of your .bash_profile.
|
84
|
+
|
85
|
+
Placing all non-interactive (non login) items in the .bashrc,
|
86
|
+
including the 'source' line above and any environment settings.
|
87
|
+
|
88
|
+
3) CLOSE THIS SHELL and open a new one in order to use rvm.
|
89
|
+
\n"
|
90
|
+
}
|
91
|
+
|
92
|
+
andand_return_warning() {
|
93
|
+
printf "
|
94
|
+
WARNING: you have a 'return' statement in your ~/.bashrc
|
95
|
+
This could cause some features of RVM to not work.
|
96
|
+
|
97
|
+
$(andand_return_instructions)
|
98
|
+
|
99
|
+
Even if you are using zsh you should still adjust the ~/.bashrc
|
100
|
+
If you have any questions about this please visit
|
101
|
+
#rvm on irc.freenode.net.
|
102
|
+
\n"
|
103
|
+
}
|
104
|
+
|
105
|
+
thank_you() {
|
106
|
+
printf "
|
107
|
+
${name:-"$(whoami)"},
|
108
|
+
|
109
|
+
Thank you very much for using RVM! I sincerely hope that RVM helps to
|
110
|
+
make your work both easier and more enjoyable.
|
111
|
+
|
112
|
+
If you have any questions, issues and/or ideas for improvement please
|
113
|
+
join#rvm on irc.freenode.net and let me know, note you must register
|
114
|
+
(http://bit.ly/5mGjlm) and identify (/msg nickserv <nick> <pass>) to
|
115
|
+
talk, this prevents spambots from ruining our day.
|
116
|
+
|
117
|
+
My irc nickname is 'wayneeseguin' and I hang out in #rvm typically
|
118
|
+
|
119
|
+
~09:00-17:00EDT and again from ~21:00EDT-~23:00EDT
|
120
|
+
|
121
|
+
If I do not respond right away, please hang around after asking your
|
122
|
+
question, I will respond as soon as I am back. It is best to talk in
|
123
|
+
#rvm itself as then other users can help out should I be offline.
|
124
|
+
|
125
|
+
Be sure to get head often as rvm development happens fast,
|
126
|
+
you can do this by running 'rvm update --head' followed by 'rvm reload'
|
127
|
+
or opening a new shell
|
128
|
+
|
129
|
+
w⦿‿⦿$
|
130
|
+
|
131
|
+
~ Wayne
|
132
|
+
|
133
|
+
"
|
134
|
+
}
|
135
|
+
|
136
|
+
upgrade_notes() {
|
137
|
+
printf "
|
138
|
+
|
139
|
+
Upgrade Notes
|
140
|
+
|
141
|
+
* Ruby package dependency list for your OS is given by:
|
142
|
+
rvm notes
|
143
|
+
|
144
|
+
* If you encounter any issues with a ruby 'X' your best bet is to:
|
145
|
+
rvm remove X ; rvm install X
|
146
|
+
|
147
|
+
* If you wish to have the 'pretty colors' again, set in ~/.rvmrc:
|
148
|
+
export rvm_pretty_print=1
|
149
|
+
"
|
52
150
|
}
|
53
151
|
|
54
|
-
if echo "$*" |
|
152
|
+
if echo "$*" | grep -q 'trace' ; then echo "$*" ; env | grep '^rvm_' ; set -x ; fi
|
55
153
|
|
56
154
|
while [[ $# -gt 0 ]] ; do
|
57
155
|
token="$1" ; shift
|
@@ -76,7 +174,7 @@ if [[ -z "$rvm_path" ]] ; then rvm_path="${rvm_prefix}rvm" ; fi
|
|
76
174
|
|
77
175
|
source scripts/initialize
|
78
176
|
|
79
|
-
if
|
177
|
+
if grep -q 'scripts/rvm' "$HOME"/.bash* 2>/dev/null || grep -q 'scripts/rvm' "$HOME"/.zsh* 2>/dev/null; then
|
80
178
|
if [[ -d "$rvm_path" ]] && [[ -s "${rvm_path}/scripts/rvm" ]] ; then
|
81
179
|
export upgrade_flag=1
|
82
180
|
else
|
@@ -91,8 +189,8 @@ __rvm_initialize
|
|
91
189
|
#
|
92
190
|
# Setup & Configuration
|
93
191
|
#
|
94
|
-
item="
|
95
|
-
question="\n
|
192
|
+
item="* "
|
193
|
+
question="\n<?>"
|
96
194
|
cwd="$PWD"
|
97
195
|
source_path="${source_path:-$cwd}"
|
98
196
|
rvm_archives_path="${rvm_archives_path:-"$rvm_path/archives"}"
|
@@ -118,45 +216,41 @@ rvm_tmp_path="${rvm_tmp_path:-"$rvm_path/tmp"}"
|
|
118
216
|
|
119
217
|
export rvm_gemset_separator="@" # TODO: Remove this after a while.
|
120
218
|
|
121
|
-
printf "
|
122
|
-
|
123
|
-
|
219
|
+
printf "
|
220
|
+
RVM: Shell scripts enabling management of multiple ruby environments.
|
221
|
+
RTFM: http://rvm.beginrescueend.com/
|
222
|
+
HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
|
223
|
+
"
|
124
224
|
|
125
|
-
if [[
|
126
|
-
printf "\
|
225
|
+
if [[ ${upgrade_flag:-0} -eq 1 ]] ;then
|
226
|
+
printf "\nUpgrading the RVM installation in $rvm_path/"
|
127
227
|
else
|
128
|
-
printf "\
|
228
|
+
printf "\nInstalling rvm to $rvm_path/"
|
129
229
|
fi
|
130
230
|
|
131
|
-
|
132
|
-
|
133
|
-
\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"
|
231
|
+
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"
|
134
232
|
|
135
233
|
for file in README LICENCE ; do
|
136
|
-
|
137
|
-
\cp -f "$source_path/$file" "$rvm_path/"
|
234
|
+
cp -f "$source_path/$file" "$rvm_path/"
|
138
235
|
done
|
139
236
|
|
140
237
|
#
|
141
238
|
# Scripts
|
142
239
|
#
|
143
240
|
for dir_name in config scripts examples lib hooks help patches; do
|
144
|
-
|
145
|
-
\mkdir -p "$rvm_path/$dir_name"
|
241
|
+
mkdir -p "$rvm_path/$dir_name"
|
146
242
|
if [[ -d "$source_path/$dir_name" ]] ; then
|
147
|
-
|
243
|
+
cp -Rf "$source_path/$dir_name" "$rvm_path"
|
148
244
|
fi
|
149
245
|
done ; unset dir_name
|
150
246
|
|
151
|
-
spinner
|
152
247
|
if [[ ! -s "$rvm_config_path/user" ]] ; then
|
153
|
-
|
248
|
+
mkdir -p "$rvm_config_path/"
|
154
249
|
echo '# Users settings file, overrides db file settings and persists across installs.' >> "$rvm_config_path/user"
|
155
250
|
fi
|
156
251
|
|
157
252
|
scripts=("monitor" "match" "log" "install" "color" "db" "fetch" "log" "set" "package")
|
158
253
|
for script_name in "${scripts[@]}" ; do
|
159
|
-
spinner
|
160
254
|
chmod +x "$rvm_scripts_path/$script_name" 2>/dev/null # Hide errors.
|
161
255
|
done
|
162
256
|
|
@@ -165,29 +259,26 @@ done
|
|
165
259
|
#
|
166
260
|
# Cleanse and purge...
|
167
261
|
for file in rvm-prompt rvm rvmsudo rvm-shell rvm-auto-ruby ; do
|
168
|
-
|
169
|
-
|
170
|
-
\cp -f "$source_path/binscripts/$file" $rvm_bin_path/
|
262
|
+
rm -f "$rvm_bin_path/$file"
|
263
|
+
cp -f "$source_path/binscripts/$file" $rvm_bin_path/
|
171
264
|
done
|
172
|
-
spinner
|
173
265
|
chmod +x "$rvm_bin_path"/*
|
174
266
|
|
175
267
|
#
|
176
268
|
# RC Files
|
177
269
|
#
|
178
|
-
spinner
|
179
270
|
if [[ -n "$rvm_auto_flag" ]] ; then
|
180
271
|
printf "Checking rc files... ($rvm_rc_files)"
|
181
272
|
if [[ "$rvm_loaded_flag" != "1" ]] ; then
|
182
273
|
for rcfile in $(printf $rvm_rc_files) ; do
|
183
|
-
if [[ ! -f $rcfile ]] ; then
|
274
|
+
if [[ ! -f $rcfile ]] ; then touch $rcfile ; fi
|
184
275
|
if [[ -s "$HOME/.profile" ]] ; then
|
185
|
-
if !
|
276
|
+
if ! grep -q '.profile' "$rcfile" ; then
|
186
277
|
echo " Adding 'if [[ -s \$HOME/.profile ]] ; then source \$HOME ; fi' to $rcfile."
|
187
278
|
printf "\n# rvm-install added line:\nif [[ -s \$HOME/.profile ]] ; then source \$HOME/.profile ; fi\n" >> "$rcfile"
|
188
279
|
fi
|
189
280
|
fi
|
190
|
-
if !
|
281
|
+
if ! grep -q "scripts\/rvm" "$rcfile" ; then
|
191
282
|
echo " Adding 'if [[ -s $rvm_scripts_path/rvm ]] ; then source $rvm_scripts_path/rvm ; fi' to $rcfile."
|
192
283
|
printf "\n# rvm-install added:\nif [[ -s $rvm_scripts_path/rvm ]] ; then source $rvm_scripts_path/rvm ; fi\n" >> "$rcfile"
|
193
284
|
fi
|
@@ -198,28 +289,27 @@ fi
|
|
198
289
|
#
|
199
290
|
# Initial Interpreter Gemsets.
|
200
291
|
#
|
201
|
-
spinner
|
202
292
|
if [[ -d gemsets/ ]] ; then
|
203
|
-
|
293
|
+
mkdir -p "$rvm_gemsets_path"
|
294
|
+
|
204
295
|
for gemset_file in $(builtin cd gemsets ; find \. -iname '*.gems' | sed 's/^\.\///') ; do
|
205
296
|
destination="$rvm_gemsets_path/$gemset_file"
|
206
297
|
destination_path="$(dirname "$destination")"
|
207
298
|
if [[ ! -s "$destination" ]] ; then
|
208
|
-
|
209
|
-
|
299
|
+
mkdir -p "$destination_path"
|
300
|
+
cp "gemsets/$gemset_file" "$destination"
|
210
301
|
fi
|
211
302
|
done ; unset destination destination_path gemset_file
|
212
303
|
fi
|
213
304
|
|
214
|
-
spinner
|
215
305
|
if [[ -d patchsets/ ]] ; then
|
216
|
-
|
306
|
+
mkdir -p "$rvm_patchsets_path"
|
217
307
|
for patchset_file in $(builtin cd patchsets ; find \. -iname '*' | sed 's/^\.\///') ; do
|
218
308
|
destination="$rvm_patchsets_path/$patchset_file"
|
219
309
|
destination_path="$(dirname "$destination")"
|
220
310
|
if [[ ! -s "$destination" ]] ; then
|
221
|
-
|
222
|
-
|
311
|
+
mkdir -p "$destination_path"
|
312
|
+
cp "patchsets/$patchset_file" "$destination"
|
223
313
|
fi
|
224
314
|
done ; unset destination destination_path patchset_file
|
225
315
|
fi
|
@@ -228,14 +318,12 @@ fi
|
|
228
318
|
# Migrate ~/.rvm/ruby-X,jruby-X,... to ~/.rvm/rubies/ for 0.1.0.
|
229
319
|
#
|
230
320
|
rvm_rubies_path="${rvm_rubies_path:-"$rvm_path/rubies"}"
|
231
|
-
|
232
|
-
spinner
|
321
|
+
mkdir -p "$rvm_rubies_path/"
|
233
322
|
for ruby in $rvm_path/ruby-* $rvm_path/jruby-* $rvm_path/mput-* $rvm_path/rbx-* $rvm_path/maglev-* $rvm_path/ree-* ; do
|
234
323
|
if [[ -d "$ruby" ]] ; then
|
235
324
|
mv "$ruby" "$rvm_rubies_path/"
|
236
325
|
new_path="$rvm_rubies_path/$(basename $ruby)"
|
237
326
|
for file in gem rake ; do
|
238
|
-
spinner
|
239
327
|
if [[ -s "$new_path/bin/$file" ]] ; then
|
240
328
|
sed -e '1,1s=.*=#!'"${new_path}/bin/ruby=" "${new_path}/bin/${file}" > "${new_path}/bin/${file}.new"
|
241
329
|
mv -f "$new_path/bin/$file.new" "$new_path/bin/$file"
|
@@ -251,9 +339,6 @@ done
|
|
251
339
|
#
|
252
340
|
# Migrate old gemset directories to new gemset pattern.
|
253
341
|
#
|
254
|
-
spinner
|
255
|
-
printf "\r*" # Stop spinner.
|
256
|
-
|
257
342
|
for gemset in "$rvm_path"/gems/*\%* ; do
|
258
343
|
new_path=${gemset/\%/${rvm_gemset_separator}}
|
259
344
|
if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
|
@@ -264,7 +349,7 @@ done
|
|
264
349
|
|
265
350
|
for gemset in "$rvm_path"/gems/*\+* ; do
|
266
351
|
new_path=${gemset/\+/${rvm_gemset_separator}}
|
267
|
-
if [[ -d "$gemset"
|
352
|
+
if [[ -d "$gemset" && ! -d "$new_path" ]] ; then
|
268
353
|
printf "\n Renaming $(basename "$gemset") to $(basename "$new_path") for new gemset separator."
|
269
354
|
mv $gemset $new_path
|
270
355
|
fi
|
@@ -272,7 +357,7 @@ done
|
|
272
357
|
|
273
358
|
for gemset in "$rvm_path"/gems/*\@ ; do
|
274
359
|
new_path=$(echo $gemset | sed -e 's#\@$##')
|
275
|
-
if [[ -d "$gemset"
|
360
|
+
if [[ -d "$gemset" && ! -d "$new_path" ]] ; then
|
276
361
|
printf "\n Fixing: $(basename "$gemset") to $(basename "$new_path") for new gemset separator."
|
277
362
|
mv "$gemset" "$new_path"
|
278
363
|
fi
|
@@ -280,77 +365,54 @@ done
|
|
280
365
|
|
281
366
|
# Move from legacy defaults to the new, alias based system.
|
282
367
|
if [[ -s "$rvm_config_path/default" ]]; then
|
283
|
-
original_version="$(basename "$(
|
368
|
+
original_version="$(basename "$(grep GEM_HOME "$rvm_config_path/default" | awk -F"'" '{print $2}' | sed "s#\%#${rvm_gemset_separator}#")")"
|
284
369
|
if [[ -n "$original_version" ]]; then
|
285
370
|
"$rvm_scripts_path/alias" create default "$original_version" &> /dev/null
|
286
371
|
fi ; unset original_version
|
287
|
-
|
372
|
+
rm -rf "$rvm_config_path/default"
|
288
373
|
fi
|
289
374
|
|
290
375
|
#
|
291
376
|
# End of gemset migration.
|
292
377
|
#
|
293
378
|
printf "\n Correct permissions for base binaries in $rvm_bin_path..."
|
294
|
-
|
295
|
-
|
379
|
+
|
380
|
+
mkdir -p "$rvm_bin_path"
|
381
|
+
|
382
|
+
for file in rvm rvmsudo rvm-shell rvm-auto-ruby ; do
|
296
383
|
[[ -s "$rvm_bin_path/$file" ]] && chmod +x "$rvm_bin_path/$file"
|
297
384
|
done; unset file
|
298
385
|
printf "\n Copying manpages into place."
|
299
|
-
for man_file in $(
|
300
|
-
|
301
|
-
|
386
|
+
for man_file in $(ls "$install_source_path/man"); do
|
387
|
+
rm -rf "$rvm_man_path/$man_file"
|
388
|
+
cp -R "$install_source_path/man/$man_file" "$rvm_man_path/"
|
302
389
|
done
|
303
390
|
|
304
391
|
[[ "$upgrade_flag" = 0 ]] && ./scripts/notes
|
305
392
|
|
306
393
|
name="$(awk -F= '/^[[:space:]]*name/{print $2}' ~/.gitconfig 2>/dev/null)"
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
printf "\nBe sure to get head often as rvm development happens fast, you can do this by running 'rvm update --head'."
|
313
|
-
printf "\n w$(tput setaf 2)⦿‿⦿$(tput sgr0)t!"
|
314
|
-
printf "\n ~ Wayne\n"
|
315
|
-
|
316
|
-
if [[ "$upgrade_flag" -eq 1 ]] ; then
|
317
|
-
printf "\n$(tput setaf 6)Upgrade Notes\n"
|
318
|
-
printf "\n * 'rvm notes' tells you OS dependency packages for installing rubies."
|
319
|
-
printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
|
320
|
-
printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
|
321
|
-
printf "\n * If you wish to have the 'pretty colors' again, set 'export rvm_pretty_print=1' in ~/.rvmrc.\n"
|
322
|
-
printf "\n$(tput sgr0)\n"
|
394
|
+
|
395
|
+
if [[ ${upgrade_flag:-0} -eq 1 ]] ; then
|
396
|
+
|
397
|
+
upgrade_notes
|
398
|
+
|
323
399
|
check_rubyopt_conditions
|
400
|
+
|
324
401
|
printf "\nUpgrade of RVM in $rvm_path/ is complete.\n\n"
|
325
402
|
else
|
326
|
-
if [[
|
327
|
-
|
328
|
-
printf "\n1) Place the folowing line at the end of your shell's loading files(.bashrc or .bash_profile for bash and .zshrc for zsh), after all path/variable settings:"
|
329
|
-
printf "\n [[ -s \$HOME/.rvm/scripts/rvm ]] && source \$HOME/.rvm/scripts/rvm"
|
330
|
-
printf "\n Please note that this must only occur once - so, you only need to add it the first time you install rvm."
|
331
|
-
printf "\n2) Ensure that there is no 'return' from inside the .bashrc file. (otherwise rvm will be prevented from working properly)."
|
332
|
-
printf "\n This means that if you see '[ -z \"\$PS1\" ] && return' then you must change this line to:"
|
333
|
-
printf "\n if [[ -n \"\$PS1\" ]] ; then"
|
334
|
-
printf "\n ... original content that was below the && return line ..."
|
335
|
-
printf "\n fi # <= be sure to close the if."
|
336
|
-
printf "\n #EOF .bashrc"
|
337
|
-
printf "\n Be absolutely *sure* to REMOVE the '&& return'."
|
338
|
-
printf "\n If you wish to DRY up your config you can 'source ~/.bashrc' at the bottom of your .bash_profile."
|
339
|
-
printf "\n placing all non-interactive items in the .bashrc, including the 'source' line above"
|
340
|
-
printf "\n3) Then $(tput setaf 1)CLOSE THIS SHELL$(tput sgr0) and open a new one in order to use rvm.\n"
|
403
|
+
if [[ ${rvm_selfcontained:-0} -eq 1 ]] ; then
|
404
|
+
installation_complete
|
341
405
|
fi
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
printf "\n if [[ -n \"\$PS1\" ]] ; then"
|
346
|
-
printf "\n ... original content that was below the && return line ..."
|
347
|
-
printf "\n fi # <= be sure to close the if."
|
348
|
-
printf "\n #EOF .bashrc"
|
349
|
-
printf "\nEven if you use zsh you should still adjust the .bashrc as above."
|
350
|
-
printf "\nIf you have any questions about this please visit #rvm on irc.freenode.net.\n"
|
406
|
+
|
407
|
+
if [[ -s "$HOME/.bashrc" ]] && grep -q '&& return' "$HOME/.bashrc" ; then
|
408
|
+
andand_return_warning
|
351
409
|
fi
|
410
|
+
|
352
411
|
check_rubyopt_conditions
|
412
|
+
|
353
413
|
printf "\nInstallation of RVM to $rvm_path/ is complete.\n\n"
|
354
414
|
fi
|
355
415
|
|
416
|
+
thank_you
|
417
|
+
|
356
418
|
exit 0
|
data/lib/VERSION.yml
CHANGED
data/rvm.gemspec
CHANGED
data/scripts/cli
CHANGED
@@ -75,21 +75,30 @@ __rvm_parse_args() {
|
|
75
75
|
|
76
76
|
if [[ -z "$next_token" ]] ; then
|
77
77
|
rvm_ruby_args="help"
|
78
|
+
|
78
79
|
elif [[ "clear" = "$next_token" ]] ; then
|
79
80
|
__rvm_gemset_clear
|
80
81
|
rvm_ruby_args="clear"
|
82
|
+
|
81
83
|
elif [[ "use" = "$next_token" ]] ; then
|
82
84
|
rvm_use_flag=1
|
83
|
-
rvm_ruby_args="$@"
|
84
|
-
rvm_gemset_name="$next_token"
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
85
|
+
rvm_ruby_args="$@"
|
86
|
+
rvm_gemset_name="$next_token"
|
87
|
+
shift # Clear next_token
|
88
|
+
|
89
|
+
if [[ $# -gt 0 ]] ; then rvm_gemset_name="$1" ; else rvm_gemset_name="" ; fi
|
90
|
+
|
91
|
+
if echo $rvm_gemset_name | \grep -q $rvm_gemset_separator ; then
|
92
|
+
rvm_ruby_string=$(echo $rvm_gemset_name | sed -e 's/\(.*\)'${rvm_gemset_separator}'.*/\1/')
|
93
|
+
rvm_gemset_name=$(echo $rvm_gemset_name | sed -e 's/.*'${rvm_gemset_separator}'\(.*\)/\1/')
|
94
|
+
|
95
|
+
if [[ "${rvm_ruby_string:-""}" != "${rvm_gemset_name:-""}" ]] ; then
|
89
96
|
rvm_ruby_string="$rvm_ruby_string${rvm_gemset_separator}$rvm_gemset_name"
|
90
97
|
fi
|
98
|
+
|
91
99
|
rvm_ruby_gem_home="$rvm_ruby_gem_home${rvm_gemset_separator}$rvm_gemset_name"
|
92
100
|
fi
|
101
|
+
|
93
102
|
elif [[ "delete" = "$next_token" ]] ; then
|
94
103
|
rvm_delete_flag=1
|
95
104
|
rvm_ruby_args="$@" ; shift
|
@@ -102,6 +111,7 @@ __rvm_parse_args() {
|
|
102
111
|
fi
|
103
112
|
rvm_ruby_gem_home="$rvm_ruby_gem_home${rvm_gemset_separator}$rvm_gemset_name"
|
104
113
|
fi
|
114
|
+
|
105
115
|
else
|
106
116
|
rvm_gemset_name="${rvm_gemset_name:-""}"
|
107
117
|
if [[ "$rvm_ruby_string" != "$rvm_gemset_name" ]] ; then __rvm_ruby_string ; fi
|
@@ -155,14 +165,18 @@ __rvm_parse_args() {
|
|
155
165
|
|
156
166
|
do|ruby|rake|gem|rubydo|rakedo|gemdo)
|
157
167
|
if [[ "do" = "${rvm_action:-""}" ]] ; then rvm_action="ruby" ; fi
|
158
|
-
|
168
|
+
|
169
|
+
rvm_action=${rvm_token//do}
|
170
|
+
|
159
171
|
if [[ "rake" = "${rvm_action:-""}" || "gem" = "${rvm_action:-""}" || "ruby" = "${rvm_action:-""}" ]] ; then
|
172
|
+
|
160
173
|
if [[ -z "$next_token" ]] ; then
|
174
|
+
|
161
175
|
if [[ "gem" = "${rvm_action:-""}" ]] ; then
|
162
176
|
rvm_action="error"
|
163
177
|
rvm_error_message="'rvm $rvm_action' must be followed by arguments."
|
164
178
|
elif [[ "ruby" = "${rvm_action:-""}" ]] ; then
|
165
|
-
if echo "$rvm_ruby_strings
|
179
|
+
if echo "${rvm_ruby_strings:-""}" | \grep -q ',' ; then
|
166
180
|
rvm_action="ruby"
|
167
181
|
rvm_ruby_args=""
|
168
182
|
else
|
@@ -170,14 +184,17 @@ __rvm_parse_args() {
|
|
170
184
|
rvm_error_message="rvm X,Y,Z '$rvm_action' must be followed by arguments."
|
171
185
|
fi
|
172
186
|
fi
|
187
|
+
|
173
188
|
elif [[ "-S" = "$next_token" ]] ; then
|
174
189
|
rvm_action="ruby"
|
175
190
|
rvm_ruby_args="$flag $(__rvm_quote_args "$@")"
|
176
191
|
rvm_parse_break=1
|
192
|
+
|
177
193
|
elif [[ "-e" = "$next_token" ]] ; then
|
178
194
|
rvm_action="ruby"
|
179
195
|
rvm_ruby_args="$flag $(__rvm_quote_args "$@")"
|
180
196
|
rvm_parse_break=1
|
197
|
+
|
181
198
|
else
|
182
199
|
rvm_ruby_args="$(__rvm_quote_args "$@")"
|
183
200
|
rvm_parse_break=1
|
@@ -185,10 +202,12 @@ __rvm_parse_args() {
|
|
185
202
|
else
|
186
203
|
if "$rvm_scripts_path"/match "$next_token" "^-" ; then
|
187
204
|
unset rvm_ruby_strings
|
205
|
+
|
188
206
|
else
|
189
207
|
if "$rvm_scripts_path"/match "$next_token" "^[0-9]" ; then
|
190
208
|
rvm_ruby_strings="${1//,/ }" ; shift
|
191
209
|
unset rvm_ruby_interpreter
|
210
|
+
|
192
211
|
else
|
193
212
|
if [[ "ruby rbx jruby macruby ree rubinius maglev mput shyouhei ironruby" =~ $next_token ]] ; then
|
194
213
|
rvm_ruby_strings=$next_token
|
@@ -523,13 +542,9 @@ rvm() {
|
|
523
542
|
__rvm_initialize
|
524
543
|
__rvm_parse_args "$@"
|
525
544
|
|
526
|
-
rvm_reload_flag=${rvm_reload_flag:-0}
|
527
|
-
rvm_use_flag=${rvm_reload_flag:-0}
|
528
|
-
rvm_delete_flag=${rvm_delete_flag:-0}
|
529
545
|
rvm_action="${rvm_action:-usage}"
|
530
546
|
|
531
|
-
export BUNDLE_PATH GEM_HOME GEM_PATH rvm_ruby_string rvm_action rvm_bin_flag rvm_debug_flag rvm_delete_flag rvm_docs_type rvm_file_name rvm_gemset_name rvm_head_flag rvm_install_on_use_flag rvm_interactive_flag rvm_llvm_flag rvm_make_flags rvm_proxy rvm_remove_flag rvm_ruby_args rvm_ruby_configure_flags rvm_ruby_file rvm_ruby_gem_home rvm_ruby_interpreter rvm_ruby_name rvm_ruby_version rvm_system_flag rvm_trace_flag rvm_use_flag rvm_user_flag rvm_verbose_flag rvm_patch_names rvm_patch_original_pwd rvm_clang_flag rvm_install_arguments
|
532
|
-
export rvm_path rvm_rubies_path rvm_scripts_path rvm_archives_path rvm_src_path rvm_patches_path rvm_patches_path rvm_patchsets_path rvm_log_path rvm_bin_path rvm_gems_path rvm_config_path rvm_tmp_path rvm_hooks_path rvm_gems_cache_path rvm_gemset_separator rvm_ruby_aliases rvm_quiet_flag rvm_silent_flag
|
547
|
+
export BUNDLE_PATH GEM_HOME GEM_PATH rvm_ruby_string rvm_action rvm_bin_flag rvm_debug_flag rvm_delete_flag rvm_docs_type rvm_file_name rvm_gemset_name rvm_head_flag rvm_install_on_use_flag rvm_interactive_flag rvm_llvm_flag rvm_make_flags rvm_proxy rvm_remove_flag rvm_ruby_args rvm_ruby_configure_flags rvm_ruby_file rvm_ruby_gem_home rvm_ruby_interpreter rvm_ruby_name rvm_ruby_version rvm_system_flag rvm_trace_flag rvm_use_flag rvm_user_flag rvm_verbose_flag rvm_patch_names rvm_patch_original_pwd rvm_clang_flag rvm_install_arguments rvm_path rvm_rubies_path rvm_scripts_path rvm_archives_path rvm_src_path rvm_patches_path rvm_patches_path rvm_patchsets_path rvm_log_path rvm_bin_path rvm_gems_path rvm_config_path rvm_tmp_path rvm_hooks_path rvm_gems_cache_path rvm_gemset_separator rvm_ruby_aliases rvm_quiet_flag rvm_silent_flag
|
533
548
|
|
534
549
|
result=0
|
535
550
|
|
@@ -589,20 +604,23 @@ rvm() {
|
|
589
604
|
|
590
605
|
gemset)
|
591
606
|
#if "$rvm_scripts_path/match" $rvm_ruby_args use ; then
|
592
|
-
if [[
|
607
|
+
if [[ ${rvm_use_flag:-0} -eq 1 ]] ; then
|
593
608
|
__rvm_gemset_select
|
594
609
|
result=$? ; if [[ $result -eq 0 ]] ; then
|
595
610
|
__rvm_gemset_use
|
596
611
|
fi
|
597
612
|
else
|
598
613
|
export rvm_ruby_strings
|
614
|
+
|
599
615
|
"$rvm_scripts_path/gemsets" $rvm_ruby_args ; result=$?
|
616
|
+
|
600
617
|
rvm_ruby_strings=""
|
601
618
|
|
602
619
|
# Clear the gemset.
|
603
|
-
if [[ $rvm_delete_flag -eq 1 ]] ; then
|
604
|
-
gem_prefix="$(echo $GEM_HOME | sed 's/'${rvm_gemset_separator}'.*$//')"
|
605
|
-
|
620
|
+
if [[ ${rvm_delete_flag:-0} -eq 1 ]] ; then
|
621
|
+
gem_prefix="$(echo "${GEM_HOME:-""}" | sed 's/'${rvm_gemset_separator}'.*$//')"
|
622
|
+
|
623
|
+
if [[ "${GEM_HOME:-""}" = "${gem_prefix}${rvm_gemset_separator}${rvm_gemset_name}" ]] ; then
|
606
624
|
rvm_ruby_gem_home="$gem_prefix"
|
607
625
|
GEM_HOME="$rvm_ruby_gem_home"
|
608
626
|
BUNDLE_PATH="$rvm_ruby_gem_home"
|
@@ -647,7 +665,7 @@ rvm() {
|
|
647
665
|
result=1
|
648
666
|
esac
|
649
667
|
|
650
|
-
if [[
|
668
|
+
if [[ ${rvm_reload_flag:-0} -eq 1 ]] ; then
|
651
669
|
source "$rvm_scripts_path/rvm"
|
652
670
|
# Note: Not using builtin on purpose. Done so we can trigger a reload the rvmrc.
|
653
671
|
__rvm_project_rvmrc
|
@@ -655,7 +673,7 @@ rvm() {
|
|
655
673
|
|
656
674
|
__rvm_teardown
|
657
675
|
|
658
|
-
if [[ $rvm_trace_flag -eq 1 ]] ; then
|
676
|
+
if [[ ${rvm_trace_flag:-0} -eq 1 ]] ; then
|
659
677
|
set +x
|
660
678
|
rvm_trace_flag=0
|
661
679
|
fi
|