rvm 1.0.8 → 1.0.9
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 +24 -0
- data/lib/VERSION.yml +1 -1
- data/rvm.gemspec +2 -2
- data/scripts/alias +67 -18
- data/scripts/base +11 -1
- data/scripts/cli +9 -13
- data/scripts/db +57 -12
- data/scripts/gemsets +77 -27
- data/scripts/manage +83 -37
- data/scripts/package +1 -2
- data/scripts/repair +1 -1
- data/scripts/rvm +4 -3
- data/scripts/selector +3 -2
- data/scripts/set +93 -10
- data/scripts/utility +79 -75
- metadata +4 -4
data/binscripts/rvm
CHANGED
@@ -1,42 +1,66 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
3
|
if [[ ${rvm_ignore_rvmrc:-0} -eq 0 ]]; then
|
4
|
+
|
4
5
|
for rvmrc in /etc/rvmrc "$HOME/.rvmrc" ; do
|
6
|
+
|
5
7
|
if [[ -f "$rvmrc" ]] ; then
|
8
|
+
|
6
9
|
if grep -q '^\s*rvm .*$' "$rvmrc" ; then
|
10
|
+
|
7
11
|
printf "\n Error:
|
8
12
|
$rvmrc is for rvm settings only.
|
9
13
|
rvm CLI may NOT be called from within $rvmrc.
|
10
14
|
Skipping the loading of $rvmrc
|
11
15
|
"
|
12
16
|
exit 1
|
17
|
+
|
13
18
|
else
|
19
|
+
|
14
20
|
source "$rvmrc"
|
21
|
+
|
15
22
|
fi
|
23
|
+
|
16
24
|
fi
|
25
|
+
|
17
26
|
done
|
27
|
+
|
18
28
|
fi
|
19
29
|
|
20
30
|
# Setup default sandbox value. See scripts/rvm for origin.
|
21
31
|
if [[ ${rvm_selfcontained:-0} -eq 0 ]]; then
|
32
|
+
|
22
33
|
if [[ "root" = "$(whoami)" ]] || [[ -n "$rvm_prefix" && "$rvm_prefix" != "$HOME"/* ]]; then
|
34
|
+
|
23
35
|
rvm_selfcontained=0
|
36
|
+
|
24
37
|
else
|
38
|
+
|
25
39
|
rvm_selfcontained=1
|
40
|
+
|
26
41
|
fi
|
42
|
+
|
27
43
|
fi
|
28
44
|
|
29
45
|
if [[ -z "${rvm_prefix:-""}" ]] ; then
|
46
|
+
|
30
47
|
if [[ ${rvm_selfcontained:-0} -eq 0 ]] ; then
|
48
|
+
|
31
49
|
rvm_prefix="/usr/local/"
|
50
|
+
|
32
51
|
else
|
52
|
+
|
33
53
|
rvm_prefix="$HOME/."
|
54
|
+
|
34
55
|
fi
|
56
|
+
|
35
57
|
fi
|
36
58
|
|
37
59
|
# Fix rvm_prefix changes.
|
38
60
|
echo "$rvm_prefix" | grep -vq '\(\/\|\.\)$' && [[ -d "$rvm_prefix/rvm/scripts" ]]
|
61
|
+
|
39
62
|
rvm_prefix_needs_trailing_slash="$?"
|
63
|
+
|
40
64
|
if [[ "$rvm_prefix" = "/usr/local" || "$rvm_prefix_needs_trailing_slash" = "0" ]]; then
|
41
65
|
rvm_prefix="$rvm_prefix/"
|
42
66
|
fi
|
data/lib/VERSION.yml
CHANGED
data/rvm.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rvm}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Wayne E. Seguin"]
|
12
|
-
s.date = %q{2010-09-
|
12
|
+
s.date = %q{2010-09-15}
|
13
13
|
s.default_executable = %q{rvm-install}
|
14
14
|
s.description = %q{Manages Ruby interpreter environments and switching between them.}
|
15
15
|
s.email = %q{wayneeseguin@gmail.com}
|
data/scripts/alias
CHANGED
@@ -78,45 +78,84 @@ alias_delete() {
|
|
78
78
|
}
|
79
79
|
|
80
80
|
alias_create() {
|
81
|
-
|
81
|
+
|
82
82
|
alias_name="${alias_name:-""}"
|
83
|
+
|
83
84
|
rvm_ruby_string="${rvm_ruby_string:-""}"
|
84
85
|
|
85
|
-
if alias_conflicts_with_ruby "$alias_name"; then
|
86
|
+
if [[ "default" != "$alias_name" ]] && alias_conflicts_with_ruby "$alias_name"; then
|
86
87
|
# Force it to an empty alias name to trigger the usage.
|
87
88
|
alias_name=""
|
88
89
|
fi
|
89
90
|
|
90
|
-
if [[ -z "$rvm_environment_identifier"
|
91
|
-
|
91
|
+
if [[ -z "${rvm_environment_identifier:-""}" || -z "$alias_name" ]] ; then
|
92
|
+
|
93
|
+
"$rvm_path/scripts"/log "error" \
|
94
|
+
"\nusage: 'rvm alias [alias_name] [ruby_string]'\n"
|
95
|
+
|
92
96
|
result=1
|
93
97
|
else
|
98
|
+
|
99
|
+
if [[ "default" = "$alias_name" ]] ; then
|
100
|
+
rvm_alias=""
|
101
|
+
fi
|
102
|
+
|
94
103
|
if [[ -z "$rvm_alias" ]] ; then
|
104
|
+
|
95
105
|
rvm_ruby_string="$rvm_environment_identifier"
|
106
|
+
|
96
107
|
if [[ -z "$rvm_alias_expanded" ]]; then
|
108
|
+
|
97
109
|
rvm_expanding_aliases=1
|
110
|
+
|
98
111
|
__rvm_become
|
112
|
+
|
99
113
|
unset rvm_expanding_aliases
|
114
|
+
|
100
115
|
else
|
116
|
+
|
101
117
|
rvm_ruby_string="$rvm_environment_identifier"
|
118
|
+
|
102
119
|
fi
|
120
|
+
|
103
121
|
if [[ -z "$rvm_ruby_string" ]]; then
|
104
|
-
|
122
|
+
|
123
|
+
"$rvm_path/scripts"/log "error" \
|
124
|
+
"\nUnknown ruby string '$rvm_ruby_string' specified\n"
|
125
|
+
|
105
126
|
result=1
|
106
|
-
|
127
|
+
|
128
|
+
return $result
|
107
129
|
fi
|
108
|
-
|
109
|
-
"$
|
130
|
+
|
131
|
+
final_environment_identifier="${rvm_environment_identifier:-$(__rvm_environment_identifier)}"
|
132
|
+
|
133
|
+
"$rvm_path/scripts"/log "info" \
|
134
|
+
"Creating alias $alias_name for $final_environment_identifier."
|
135
|
+
|
110
136
|
ln -nfs "$rvm_path/rubies/$rvm_ruby_string" "$rvm_path/rubies/$alias_name"
|
111
|
-
|
137
|
+
|
138
|
+
"$rvm_path/scripts"/log "info" \
|
139
|
+
"Recording alias $alias_name for $final_environment_identifier."
|
140
|
+
|
112
141
|
"$rvm_path/scripts"/db "$rvm_path/config/alias" "$alias_name" "$final_environment_identifier"
|
142
|
+
|
113
143
|
else
|
144
|
+
|
114
145
|
if [[ -d "$rvm_path/rubies/$alias_name" ]] ; then
|
115
|
-
|
146
|
+
|
147
|
+
"$rvm_path/scripts"/log "error" \
|
148
|
+
"\n$rvm_path/rubies/$alias_name is taken and is *not* able to be an alias name.\n"
|
149
|
+
|
116
150
|
result=1
|
151
|
+
|
117
152
|
else
|
118
|
-
|
153
|
+
|
154
|
+
"$rvm_path/scripts"/log "error" \
|
155
|
+
"\n$rvm_path/rubies/$alias_name is already aliased.\n"
|
156
|
+
|
119
157
|
result=1
|
158
|
+
|
120
159
|
fi
|
121
160
|
fi
|
122
161
|
fi
|
@@ -124,15 +163,13 @@ alias_create() {
|
|
124
163
|
|
125
164
|
alias_list() {
|
126
165
|
|
127
|
-
local item
|
166
|
+
local item items
|
128
167
|
|
129
|
-
|
168
|
+
items=($(cd "$rvm_path/rubies" ; find . -maxdepth 1 -mindepth 1 -type l | sed -e 's#./##'))
|
130
169
|
|
131
|
-
|
170
|
+
for item in "${items[@]}" ; do
|
132
171
|
|
133
|
-
|
134
|
-
|
135
|
-
fi
|
172
|
+
echo "$(basename "$item") => $("$rvm_path/scripts"/db "$rvm_path/config/alias" "$(basename "$item")")"
|
136
173
|
|
137
174
|
done
|
138
175
|
|
@@ -154,21 +191,33 @@ else
|
|
154
191
|
gemset_name=""
|
155
192
|
fi
|
156
193
|
|
157
|
-
if [[
|
194
|
+
if [[ -n "$alias_name" ]] ; then
|
158
195
|
rvm_alias="$("$rvm_path/scripts/db" "$rvm_path/config/alias" "$alias_name")"
|
159
196
|
fi
|
160
197
|
|
161
198
|
if [[ "$action" = "delete" ]] ; then
|
199
|
+
|
162
200
|
alias_delete
|
201
|
+
|
163
202
|
elif [[ "$action" = "create" ]] ; then
|
203
|
+
|
164
204
|
alias_create
|
205
|
+
|
165
206
|
elif [[ "$action" = "list" ]] ; then
|
207
|
+
|
166
208
|
alias_list
|
209
|
+
|
167
210
|
elif [[ "$action" = "show" ]]; then
|
211
|
+
|
168
212
|
alias_show
|
213
|
+
|
214
|
+
|
169
215
|
elif [[ "$action" = "help" ]]; then
|
216
|
+
|
170
217
|
usage
|
218
|
+
|
171
219
|
else
|
220
|
+
|
172
221
|
usage
|
173
222
|
exit 1
|
174
223
|
fi
|
data/scripts/base
CHANGED
@@ -6,10 +6,17 @@
|
|
6
6
|
# Load the general scripts.
|
7
7
|
# Use rvm_base_except="" to override the except.
|
8
8
|
for script_name in initialize utility selector ; do
|
9
|
+
|
9
10
|
if echo "${rvm_base_except:-""}" | \grep -vq "$script_name" ; then
|
11
|
+
|
10
12
|
source "$rvm_path/scripts/$script_name"
|
13
|
+
|
11
14
|
fi
|
12
|
-
|
15
|
+
|
16
|
+
done
|
17
|
+
|
18
|
+
unset script_name rvm_base_except
|
19
|
+
|
13
20
|
|
14
21
|
#for option in errexit noclobber nounset ; do
|
15
22
|
# set -o $option
|
@@ -31,5 +38,8 @@ else
|
|
31
38
|
__array_start=0
|
32
39
|
fi
|
33
40
|
|
41
|
+
export BUNDLE_PATH GEM_HOME GEM_PATH rvm_action rvm_alias_expanded rvm_archflags rvm_archive_extension rvm_bin_flag rvm_bin_path rvm_clang_flag rvm_configure_flags rvm_debug_flag rvm_default_flag rvm_delete_flag rvm_docs_type rvm_dump_environment_flag rvm_error_message rvm_expanding_aliases rvm_file_name rvm_gemdir_flag rvm_gemset_name rvm_gemstone_package_file rvm_gemstone_url rvm_head_flag rvm_hook rvm_install_arguments rvm_install_on_use_flag rvm_interactive_flag rvm_llvm_flag rvm_loaded_flag rvm_make_flags rvm_niceness rvm_nightly_flag rvm_only_path_flag rvm_parse_break rvm_patch_names rvm_patch_original_pwd rvm_pretty_print_flag rvm_prior_cc rvm_proxy rvm_quiet_flag rvm_ree_options rvm_reload_flag rvm_remove_flag rvm_ruby_alias rvm_ruby_aliases rvm_ruby_args rvm_ruby_binary rvm_ruby_bits rvm_ruby_configure rvm_ruby_file rvm_ruby_gem_home rvm_ruby_gem_path rvm_ruby_global_gems_path rvm_ruby_home rvm_ruby_interpreter rvm_ruby_irbrc rvm_ruby_load_path rvm_ruby_major_version rvm_ruby_make rvm_ruby_make_install rvm_ruby_minor_version rvm_ruby_mode rvm_ruby_name rvm_ruby_package_file rvm_ruby_package_name rvm_ruby_patch rvm_ruby_patch_level rvm_ruby_release_version rvm_ruby_repo_url rvm_ruby_require rvm_ruby_revision rvm_ruby_selected_flag rvm_ruby_sha rvm_ruby_string rvm_ruby_strings rvm_ruby_tag rvm_ruby_url rvm_ruby_user_tag rvm_ruby_version rvm_script_name rvm_sdk rvm_silent_flag rvm_sticky_flag rvm_system_flag rvm_token rvm_trace_flag rvm_use_flag rvm_user_flag rvm_verbose_flag rvm_wrapper_name
|
42
|
+
|
43
|
+
|
34
44
|
# Cleanup tmp on exit.
|
35
45
|
trap "__rvm_cleanup_temp_for '$$'" 0 1 2 3 15
|
data/scripts/cli
CHANGED
@@ -84,7 +84,7 @@ __rvm_parse_args() {
|
|
84
84
|
gemset)
|
85
85
|
rvm_action=$rvm_token
|
86
86
|
|
87
|
-
rvm_ruby_gem_home="$GEM_HOME"
|
87
|
+
rvm_ruby_gem_home="${GEM_HOME:-""}"
|
88
88
|
|
89
89
|
if [[ -z "$next_token" ]] ; then
|
90
90
|
rvm_ruby_args="help"
|
@@ -397,25 +397,24 @@ __rvm_parse_args() {
|
|
397
397
|
;;
|
398
398
|
|
399
399
|
--trace|--debug)
|
400
|
-
local option
|
400
|
+
local option
|
401
401
|
|
402
402
|
export rvm_debug_flag=1
|
403
403
|
|
404
|
-
|
405
|
-
|
406
|
-
|
404
|
+
set -o verbose
|
405
|
+
set -o noclobber
|
406
|
+
set -o nounset
|
407
407
|
|
408
408
|
if [[ -z "${ZSH_VERSION:-""}" ]] ; then
|
409
409
|
set -o errtrace
|
410
410
|
fi
|
411
411
|
|
412
412
|
# errexit pipefail
|
413
|
-
|
414
413
|
if [[ "$rvm_token" = "--trace" ]] ; then
|
415
414
|
|
416
415
|
export rvm_trace_flag=1
|
417
416
|
|
418
|
-
set -o xtrace
|
417
|
+
#set -o xtrace
|
419
418
|
|
420
419
|
if [[ -z "${ZSH_VERSION:-""}" ]] ; then
|
421
420
|
export PS4='-[${BASH_SOURCE}] : ${LINENO} : ${FUNCNAME[0]:+${FUNCNAME[0]}() > }'
|
@@ -423,7 +422,6 @@ __rvm_parse_args() {
|
|
423
422
|
fi
|
424
423
|
;;
|
425
424
|
|
426
|
-
|
427
425
|
--proxy)
|
428
426
|
rvm_proxy="$next_token"
|
429
427
|
if [[ $# -gt 0 ]] ; then next_token="$1" ; shift ; else next_token="" ; fi
|
@@ -579,8 +577,6 @@ __rvm_parse_args() {
|
|
579
577
|
if [[ ${rvm_parse_break:-0} -eq 1 || -n "${rvm_error_message:-""}" ]] ; then break ; fi
|
580
578
|
done
|
581
579
|
|
582
|
-
export rvm_head_flag $(env | awk -F= -v ORS=' ' '/^rvm_/{print $1}')
|
583
|
-
|
584
580
|
# Empty args list.
|
585
581
|
while [[ $# -gt 0 ]] ; do shift ; done
|
586
582
|
|
@@ -632,7 +628,7 @@ rvm() {
|
|
632
628
|
|
633
629
|
result=0
|
634
630
|
|
635
|
-
export BUNDLE_PATH GEM_HOME GEM_PATH
|
631
|
+
export BUNDLE_PATH GEM_HOME GEM_PATH rvm_action rvm_archflags rvm_bin_flag rvm_bin_path rvm_clang_flag rvm_configure_flags rvm_debug_flag rvm_delete_flag rvm_docs_type rvm_dump_environment_flag rvm_error_message rvm_file_name rvm_gemdir_flag rvm_gemset_name rvm_head_flag rvm_install_arguments rvm_install_on_use_flag rvm_interactive_flag rvm_llvm_flag rvm_loaded_flag rvm_make_flags rvm_niceness rvm_only_path_flag rvm_parse_break rvm_patch_names rvm_patch_original_pwd rvm_pretty_print_flag rvm_prior_cc rvm_proxy rvm_quiet_flag rvm_ree_options rvm_reload_flag rvm_remove_flag rvm_ruby_alias rvm_ruby_aliases rvm_ruby_args rvm_ruby_file rvm_ruby_gem_home rvm_ruby_interpreter rvm_ruby_load_path rvm_ruby_make rvm_ruby_make_install rvm_ruby_patch_level rvm_ruby_repo_url rvm_ruby_require rvm_ruby_string rvm_ruby_strings rvm_ruby_version rvm_script_name rvm_sdk rvm_silent_flag rvm_system_flag rvm_token rvm_trace_flag rvm_use_flag rvm_user_flag rvm_verbose_flag rvm_wrapper_name
|
636
632
|
|
637
633
|
case "$rvm_action" in
|
638
634
|
use) __rvm_use ;;
|
@@ -704,7 +700,7 @@ rvm() {
|
|
704
700
|
if [[ ${rvm_delete_flag:-0} -eq 1 ]] ; then
|
705
701
|
gem_prefix="$(echo "${GEM_HOME:-""}" | sed 's/'${rvm_gemset_separator:-"@"}'.*$//')"
|
706
702
|
|
707
|
-
if [[
|
703
|
+
if [[ "${GEM_HOME:-""}" = "${gem_prefix}${rvm_gemset_separator:-"@"}${rvm_gemset_name}" ]] ; then
|
708
704
|
rvm_ruby_gem_home="$gem_prefix"
|
709
705
|
GEM_HOME="$rvm_ruby_gem_home"
|
710
706
|
BUNDLE_PATH="$rvm_ruby_gem_home"
|
@@ -765,6 +761,6 @@ rvm() {
|
|
765
761
|
rvm_trace_flag=0
|
766
762
|
fi
|
767
763
|
|
768
|
-
return $result
|
764
|
+
return ${result:-0}
|
769
765
|
}
|
770
766
|
|
data/scripts/db
CHANGED
@@ -1,41 +1,86 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
3
|
usage() {
|
4
|
-
printf "
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
printf "
|
5
|
+
|
6
|
+
Usage:
|
7
|
+
|
8
|
+
db database_file {{key}} {{value}} # set
|
9
|
+
db database_file {{key}} # get
|
10
|
+
db database_file {{key}} unset # unset
|
11
|
+
|
12
|
+
" >&2
|
8
13
|
}
|
9
14
|
|
10
15
|
if [[ -f "$1" ]] ; then
|
16
|
+
|
11
17
|
database_file="$1" ; shift
|
18
|
+
|
12
19
|
if [[ ! -f "$database_file" ]] ; then
|
13
|
-
|
14
|
-
|
20
|
+
|
21
|
+
directory=$(dirname "$database_file")
|
22
|
+
|
23
|
+
if [[ ! -d "$directory" ]] ; then
|
24
|
+
mkdir -p "$directory"
|
25
|
+
fi
|
26
|
+
|
27
|
+
touch "$database_file"
|
28
|
+
|
15
29
|
fi
|
30
|
+
|
16
31
|
else
|
32
|
+
|
17
33
|
printf "\n\nDatabase file $1 does not exist.\n\n" >&2
|
34
|
+
|
18
35
|
exit 1
|
36
|
+
|
19
37
|
fi
|
20
38
|
|
21
39
|
key="$1" ; shift
|
40
|
+
|
22
41
|
if [[ -z "$key" ]] ; then
|
42
|
+
|
23
43
|
usage
|
44
|
+
|
24
45
|
exit 1
|
46
|
+
|
25
47
|
else
|
48
|
+
|
26
49
|
value="$*"
|
27
|
-
|
28
|
-
|
50
|
+
|
51
|
+
if [[ "unset" = "$value" || "delete" = "$value" ]] ; then
|
52
|
+
|
53
|
+
sed -e "s#^$key=.*\$##" -e '/^$/d' "$database_file" > "$database_file.new"
|
54
|
+
|
55
|
+
mv "$database_file.new" "$database_file"
|
56
|
+
|
29
57
|
else
|
58
|
+
|
30
59
|
if [[ -z "$value" ]] ; then # get
|
31
|
-
|
60
|
+
|
61
|
+
awk -F= '/^'"$key"'=/' "$database_file" | sed -e "s#^$key=##" -e '/^$/d'
|
62
|
+
|
32
63
|
else # set
|
33
|
-
|
34
|
-
|
64
|
+
|
65
|
+
sed -e "s#^$key=.*\$##" -e '/^$/d' "$database_file" > "$database_file.new"
|
66
|
+
|
67
|
+
mv "$database_file.new" "$database_file"
|
68
|
+
|
69
|
+
if [[ -z "$(awk -F= "/^'"$key"'=/{print $2}" "$database_file")" ]] ; then # append
|
70
|
+
|
71
|
+
echo "$key=$value" >> "$database_file"
|
72
|
+
|
35
73
|
else # overwrite
|
36
|
-
|
74
|
+
|
75
|
+
sed -i.tmp "s#^$key=.*\$#$key=$value#" "$database_file" > "$database_file.new"
|
76
|
+
|
77
|
+
mv "$database_file.new" "$database_file"
|
78
|
+
|
37
79
|
fi
|
80
|
+
|
38
81
|
fi
|
82
|
+
|
39
83
|
fi
|
84
|
+
|
40
85
|
fi
|
41
86
|
|
data/scripts/gemsets
CHANGED
@@ -24,21 +24,30 @@ usage() {
|
|
24
24
|
}
|
25
25
|
|
26
26
|
gemset_update() {
|
27
|
+
|
27
28
|
if [[ -z "$rvm_ruby_strings" ]]; then
|
29
|
+
|
28
30
|
"$rvm_path/scripts/log" "info" "Running gem update for all rubies and gemsets."
|
29
31
|
|
30
32
|
rvm_ruby_strings="$(builtin cd "${rvm_gems_path:-"$rvm_path/gems"}" ; find . -maxdepth 1 -mindepth 1 -type d -print 2>/dev/null | grep -v '^\(doc\|cache\|@\|system\)' | \tr '\n' ',')"
|
33
|
+
|
31
34
|
rvm_ruby_strings="${rvm_ruby_strings/%,}"
|
35
|
+
|
32
36
|
rvm_ruby_strings="${rvm_ruby_strings//.\/}"
|
37
|
+
|
33
38
|
else
|
34
39
|
"$rvm_path/scripts/log" "info" "Running gem update for the specified rubies."
|
35
40
|
fi
|
41
|
+
|
36
42
|
export rvm_ruby_strings
|
43
|
+
|
37
44
|
"$rvm_path/scripts/set" "gem" "update"
|
45
|
+
|
38
46
|
return $?
|
39
47
|
}
|
40
48
|
|
41
49
|
gemset_globalcache() {
|
50
|
+
|
42
51
|
local gc_status globalcache_enabled directories directory_name full_directory_path directory_name
|
43
52
|
|
44
53
|
if [[ "$1" == "enabled" ]]; then
|
@@ -46,6 +55,7 @@ gemset_globalcache() {
|
|
46
55
|
__rvm_using_gemset_globalcache
|
47
56
|
|
48
57
|
globalcache_enabled=$?
|
58
|
+
|
49
59
|
gc_status="Unknown"
|
50
60
|
|
51
61
|
if [[ $globalcache_enabled -eq 0 ]]; then
|
@@ -54,13 +64,15 @@ gemset_globalcache() {
|
|
54
64
|
gc_status="Disabled"
|
55
65
|
fi
|
56
66
|
|
57
|
-
"$rvm_path/scripts/log" "info"
|
67
|
+
"$rvm_path/scripts/log" "info" \
|
68
|
+
"Gemset global cache is currently: $gc_status"
|
58
69
|
|
59
70
|
return "$globalcache_enabled"
|
60
71
|
|
61
72
|
elif [[ "$1" == "disable" ]]; then
|
62
73
|
|
63
|
-
"$rvm_path/scripts/log" "info"
|
74
|
+
"$rvm_path/scripts/log" "info" \
|
75
|
+
"Removing the global cache (note: this will empty the caches)"
|
64
76
|
|
65
77
|
directories=($(builtin cd "${rvm_gems_path:-"$rvm_path/gems"}" ; find . -maxdepth 1 -mindepth 1 -type d -print))
|
66
78
|
|
@@ -70,7 +82,8 @@ gemset_globalcache() {
|
|
70
82
|
|
71
83
|
if [[ -L "$current_cache_path" && "$(readlink "$current_cache_path")" == "$rvm_gems_cache_path" ]]; then
|
72
84
|
|
73
|
-
"$rvm_path/scripts/log" "info"
|
85
|
+
"$rvm_path/scripts/log" "info" \
|
86
|
+
"Reverting the gem cache for $directory_name to an empty directory."
|
74
87
|
|
75
88
|
rm -f "$current_cache_path" 2>/dev/null
|
76
89
|
|
@@ -82,7 +95,8 @@ gemset_globalcache() {
|
|
82
95
|
|
83
96
|
elif [[ "$1" == "enable" ]]; then
|
84
97
|
|
85
|
-
"$rvm_path/scripts/log" "info"
|
98
|
+
"$rvm_path/scripts/log" "info" \
|
99
|
+
"Enabling global cache for gems."
|
86
100
|
|
87
101
|
mkdir -p "$rvm_gems_cache_path"
|
88
102
|
|
@@ -440,14 +454,22 @@ gemset_export() {
|
|
440
454
|
|
441
455
|
gemset_import() {
|
442
456
|
|
457
|
+
unset -f gem
|
458
|
+
|
443
459
|
if [[ -n "${rvm_ruby_gem_home:-""}" ]] ; then
|
444
460
|
export GEM_HOME="$rvm_ruby_gem_home"
|
445
|
-
export GEM_PATH="$rvm_ruby_gem_home
|
461
|
+
export GEM_PATH="$rvm_ruby_gem_home"
|
446
462
|
export BUNDLE_PATH="$rvm_ruby_gem_home"
|
463
|
+
else
|
464
|
+
rvm_ruby_gem_home=${GEM_HOME:-$(gem env gemdir)}
|
447
465
|
fi
|
448
466
|
|
449
|
-
|
467
|
+
#rvm_gemset_name="${gems_args//.gem*/}"
|
468
|
+
#rvm_gemset_name="${gems_args// /}"
|
450
469
|
|
470
|
+
rvm_file_name="${gems_args// /}"
|
471
|
+
|
472
|
+
# TODO: this could likely be better with find
|
451
473
|
if [[ -s "${rvm_file_name%.gems*}.gems" ]] ; then
|
452
474
|
rvm_file_name="${rvm_file_name%.gems*}.gems"
|
453
475
|
|
@@ -468,7 +490,13 @@ gemset_import() {
|
|
468
490
|
return 1
|
469
491
|
fi
|
470
492
|
|
471
|
-
|
493
|
+
if [[ ! -d "$rvm_ruby_gem_home/specifications/" ]] ; then
|
494
|
+
mkdir -p "$rvm_ruby_gem_home/specifications/"
|
495
|
+
fi
|
496
|
+
|
497
|
+
if [[ ! -d "$rvm_gems_cache_path" ]] ; then
|
498
|
+
mkdir -p "$rvm_gems_cache_path" # Ensure the base cache dir is initialized.
|
499
|
+
fi
|
472
500
|
|
473
501
|
if [[ -s "$rvm_file_name" ]] ; then
|
474
502
|
|
@@ -537,7 +565,7 @@ __rvm_parse_gems_args() {
|
|
537
565
|
# Install a gem
|
538
566
|
gem_install() {
|
539
567
|
|
540
|
-
local
|
568
|
+
local gem gem_prefix gem_name gem_version gem_file_name gem_postfix cache_file gem_file_name gem_string gem_action
|
541
569
|
|
542
570
|
result=0
|
543
571
|
|
@@ -608,15 +636,17 @@ gem_install() {
|
|
608
636
|
|
609
637
|
if [[ -n "$rvm_ruby_gem_home" && "$rvm_ruby_gem_home" != "${rvm_gems_path:-"$rvm_path/gems"}" ]] ; then
|
610
638
|
|
611
|
-
command="GEM_HOME='$rvm_ruby_gem_home' GEM_PATH='$rvm_ruby_gem_home
|
639
|
+
command="GEM_HOME='$rvm_ruby_gem_home' GEM_PATH='$rvm_ruby_gem_home' BUNDLE_PATH='${rvm_ruby_gem_home}' $gem_prefix gem install $gems_args $rvm_gem_options $gem_postfix $vars"
|
612
640
|
|
613
641
|
else
|
614
642
|
|
615
643
|
#--ignore-dependencies
|
616
|
-
command="$gem_prefix
|
644
|
+
command="$gem_prefix gem install --ignore-dependencies $gems_args $rvm_gem_options -q $gem $gem_postfix $vars"
|
617
645
|
|
618
646
|
fi
|
619
647
|
|
648
|
+
unset -f gem
|
649
|
+
|
620
650
|
__rvm_run "gem.install" "$command" "installing ${gem_name} ${gem_version}..."
|
621
651
|
result=$?
|
622
652
|
|
@@ -717,37 +747,52 @@ gemset_pristine() {
|
|
717
747
|
# Loads the default gemsets for the current interpreter and gemset.
|
718
748
|
gemset_initial() {
|
719
749
|
|
750
|
+
local gemsets gemset path paths
|
751
|
+
|
752
|
+
rvm_gemsets_path="${rvm_gemsets_path:-"$rvm_path/gemsets"}"
|
753
|
+
|
720
754
|
"$rvm_path/scripts/log" "info" \
|
721
755
|
"Importing initial gemsets for $(__rvm_environment_identifier)."
|
722
756
|
|
723
|
-
|
757
|
+
if [[ ! -d "$rvm_gemsets_path/${rvm_ruby_string//-/\/}" ]] ; then
|
758
|
+
mkdir -p "$rvm_gemsets_path/${rvm_ruby_string//-/\/}" 2>/dev/null
|
759
|
+
fi
|
724
760
|
|
725
|
-
|
761
|
+
paths=($(__rvm_ruby_string_paths_under "$rvm_gemsets_path"))
|
726
762
|
|
727
|
-
|
728
|
-
|
763
|
+
echo "paths: ${paths[@]}"
|
764
|
+
|
765
|
+
for path in "${paths[@]}" ; do
|
766
|
+
|
767
|
+
if [[ -n "$rvm_gemset_name" ]] ; then
|
768
|
+
|
769
|
+
if [[ -s "${rvm_gemset_name}.gems" ]] ; then
|
770
|
+
|
771
|
+
( gems_args="${rvm_gemset_name}.gems" ; gemset_import )
|
729
772
|
|
730
|
-
if [[ -n "$rvm_gemset_name" && -s "${gemsets_path}/${rvm_gemset_name}.gems" ]] ; then
|
731
|
-
(
|
732
|
-
rvm --create "$rvm_ruby_string"
|
733
|
-
"$rvm_path/scripts/gemsets" import "${gemsets_path}/${rvm_gemset_name}.gems"
|
734
|
-
)
|
735
773
|
fi
|
736
774
|
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
)
|
775
|
+
else
|
776
|
+
|
777
|
+
if [[ -s "${path}/default.gems" ]] ; then
|
778
|
+
|
779
|
+
( gems_args="${path}/default.gems" ; gemset_import )
|
780
|
+
|
742
781
|
fi
|
743
782
|
|
744
|
-
if [[ -s "${
|
783
|
+
if [[ -s "${path}/global.gems" ]] ; then
|
784
|
+
|
745
785
|
(
|
746
|
-
|
747
|
-
|
786
|
+
rvm_create_flag=1
|
787
|
+
rvm_ruby_gem_home="${rvm_ruby_gem_home//@*/}@global"
|
788
|
+
gems_args="${path}/global.gems"
|
789
|
+
gemset_import
|
748
790
|
)
|
791
|
+
|
749
792
|
fi
|
793
|
+
|
750
794
|
fi
|
795
|
+
|
751
796
|
done
|
752
797
|
|
753
798
|
"$rvm_path/scripts/log" "info" \
|
@@ -773,10 +818,15 @@ export rvm_gemset_name="${args[1]:-""}" # For wherever used.
|
|
773
818
|
rvm_sticky_flag=1
|
774
819
|
|
775
820
|
if [[ -z "$rvm_ruby_string" ]] ; then
|
821
|
+
|
776
822
|
if echo "${GEM_HOME:-""}" | grep -q 'rvm' ; then
|
823
|
+
|
777
824
|
rvm_ruby_string="${GEM_HOME##*/}"
|
825
|
+
|
778
826
|
rvm_ruby_string="${rvm_ruby_string%%@*}"
|
827
|
+
|
779
828
|
fi
|
829
|
+
|
780
830
|
fi
|
781
831
|
|
782
832
|
case "$action" in
|