rvm 1.1.4 → 1.1.5
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/lib/VERSION.yml +1 -1
- data/lib/rvm/environment.rb +1 -1
- data/lib/rvm/shell/shell_wrapper.sh +1 -1
- data/rvm.gemspec +3 -110
- metadata +4 -111
- data/binscripts/rvm +0 -76
- data/binscripts/rvm-auto-ruby +0 -24
- data/binscripts/rvm-prompt +0 -208
- data/binscripts/rvm-shell +0 -35
- data/binscripts/rvm-update-head +0 -58
- data/binscripts/rvm-update-latest +0 -27
- data/binscripts/rvmsudo +0 -20
- data/config/db +0 -71
- data/config/known +0 -54
- data/config/md5 +0 -139
- data/contrib/gemset_snapshot +0 -25
- data/contrib/install-system-wide +0 -221
- data/contrib/r +0 -44
- data/examples/rvmrc +0 -49
- data/gemsets/default.gems +0 -1
- data/gemsets/global.gems +0 -1
- data/help/alias +0 -46
- data/help/benchmark +0 -17
- data/help/cleanup +0 -23
- data/help/debug +0 -8
- data/help/disk-usage +0 -15
- data/help/docs +0 -22
- data/help/exec +0 -33
- data/help/fetch +0 -5
- data/help/gem +0 -0
- data/help/gemdir +0 -0
- data/help/gemset +0 -14
- data/help/implode +0 -0
- data/help/info +0 -62
- data/help/install +0 -0
- data/help/list +0 -0
- data/help/migrate +0 -15
- data/help/monitor +0 -0
- data/help/notes +0 -0
- data/help/package +0 -0
- data/help/rake +0 -14
- data/help/remove +0 -0
- data/help/repair +0 -23
- data/help/reset +0 -0
- data/help/ruby +0 -84
- data/help/rubygems +0 -11
- data/help/rvmrc +0 -34
- data/help/snapshot +0 -15
- data/help/specs +0 -0
- data/help/srcdir +0 -0
- data/help/tests +0 -0
- data/help/tools +0 -22
- data/help/uninstall +0 -0
- data/help/update +0 -0
- data/help/upgrade +0 -18
- data/help/use +0 -0
- data/help/wrapper +0 -41
- data/install +0 -667
- data/man/man1/rvm.1 +0 -380
- data/man/man1/rvm.1.gz +0 -0
- data/scripts/alias +0 -226
- data/scripts/aliases +0 -4
- data/scripts/array +0 -32
- data/scripts/base +0 -57
- data/scripts/cd +0 -94
- data/scripts/cleanup +0 -58
- data/scripts/cli +0 -798
- data/scripts/color +0 -49
- data/scripts/completion +0 -151
- data/scripts/db +0 -87
- data/scripts/default +0 -64
- data/scripts/disk-usage +0 -60
- data/scripts/docs +0 -115
- data/scripts/env +0 -46
- data/scripts/environment-convertor +0 -74
- data/scripts/fetch +0 -231
- data/scripts/gemsets +0 -1045
- data/scripts/get +0 -126
- data/scripts/hash +0 -37
- data/scripts/help +0 -46
- data/scripts/hook +0 -23
- data/scripts/info +0 -213
- data/scripts/initialize +0 -29
- data/scripts/install +0 -667
- data/scripts/irbrc +0 -13
- data/scripts/irbrc.rb +0 -64
- data/scripts/list +0 -315
- data/scripts/log +0 -38
- data/scripts/maglev +0 -193
- data/scripts/manage +0 -2157
- data/scripts/match +0 -6
- data/scripts/md5 +0 -22
- data/scripts/migrate +0 -175
- data/scripts/monitor +0 -105
- data/scripts/notes +0 -140
- data/scripts/override_gem +0 -14
- data/scripts/package +0 -302
- data/scripts/patches +0 -64
- data/scripts/patchsets +0 -87
- data/scripts/repair +0 -199
- data/scripts/rubygems +0 -157
- data/scripts/rvm +0 -128
- data/scripts/rvm-install +0 -667
- data/scripts/selector +0 -904
- data/scripts/set +0 -301
- data/scripts/snapshot +0 -262
- data/scripts/tools +0 -58
- data/scripts/update +0 -667
- data/scripts/upgrade +0 -144
- data/scripts/utility +0 -1499
- data/scripts/version +0 -17
- data/scripts/wrapper +0 -210
data/scripts/set
DELETED
@@ -1,301 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
source "$rvm_path/scripts/base"
|
4
|
-
|
5
|
-
__rvm_attempt_single_exec()
|
6
|
-
{
|
7
|
-
# Return if we have multiple rubies. or we're not running exec.
|
8
|
-
if [[ "$action" = "exec" && ${#rvm_ruby_strings[@]} -lt 2 ]]; then
|
9
|
-
|
10
|
-
__rvm_become "$rvm_ruby_strings"
|
11
|
-
|
12
|
-
eval "exec ${args[@]}"
|
13
|
-
fi
|
14
|
-
|
15
|
-
return 1
|
16
|
-
}
|
17
|
-
|
18
|
-
# Perform an action using one of a selected ruby's specified binaries.
|
19
|
-
__rvm_ruby_do()
|
20
|
-
{
|
21
|
-
# Return on invalid rubies.
|
22
|
-
__rvm_become "$current_set_ruby" || return 1
|
23
|
-
|
24
|
-
rvm_hook="before_do" ; source "$rvm_path/scripts/hook"
|
25
|
-
|
26
|
-
if [[ "$action" = "exec" ]]; then
|
27
|
-
# Exec is a special case.
|
28
|
-
command="${args[@]}"
|
29
|
-
|
30
|
-
else
|
31
|
-
|
32
|
-
binary="$(echo $action | sed 's#do$##')"
|
33
|
-
|
34
|
-
if [[ -x "$rvm_ruby_home/bin/$binary" ]] ; then
|
35
|
-
|
36
|
-
binary="$rvm_ruby_home/bin/$binary"
|
37
|
-
|
38
|
-
elif [[ -x "$rvm_ruby_global_gems_path/bin/$binary" ]] ; then
|
39
|
-
|
40
|
-
binary="$rvm_ruby_global_gems_path/bin/$binary"
|
41
|
-
|
42
|
-
elif [[ -x "$rvm_ruby_gem_home/bin/$binary" ]] ; then
|
43
|
-
|
44
|
-
binary="$rvm_ruby_gem_home/bin/$binary"
|
45
|
-
|
46
|
-
elif [[ "system" = "$rvm_ruby_string" ]] && [[ -x "$(command -v $binary)" ]] ; then
|
47
|
-
|
48
|
-
binary="$(basename $(command -v $binary) 2>/dev/null)"
|
49
|
-
|
50
|
-
else
|
51
|
-
|
52
|
-
"$rvm_path/scripts/log" "warn" \
|
53
|
-
"'$binary not found for $rvm_ruby_string' either does not exist or is not executable? :("
|
54
|
-
|
55
|
-
__rvm_unset_ruby_variables
|
56
|
-
|
57
|
-
return 1
|
58
|
-
|
59
|
-
fi
|
60
|
-
|
61
|
-
if [[ ! -z "$rvm_ruby_mode" ]] ; then
|
62
|
-
|
63
|
-
rvm_ruby_string="${rvm_ruby_string}-${rvm_ruby_mode}"
|
64
|
-
|
65
|
-
rvm_ruby_mode="--$(echo "$rvm_ruby_mode" | sed 's/^m//')"
|
66
|
-
|
67
|
-
fi
|
68
|
-
|
69
|
-
load_path="$(dirname $(command -v $binary) 2>/dev/null):$rvm_ruby_load_path"
|
70
|
-
|
71
|
-
# TODO: the else case below should be run if $args =~ /\.rb$/
|
72
|
-
if [[ "ruby" = "$(basename $binary)" && "$rvm_benchmark_flag" -ne 1 ]] ; then
|
73
|
-
|
74
|
-
case "${args[@]}" in
|
75
|
-
|
76
|
-
*[:space:]-S[:space:]*)
|
77
|
-
command="$binary $rvm_ruby_mode $rvm_ruby_require -I$load_path ${args[@]}"
|
78
|
-
;;
|
79
|
-
|
80
|
-
*)
|
81
|
-
command="$binary $rvm_ruby_mode $rvm_ruby_require -I$load_path -S ${args[@]}"
|
82
|
-
;;
|
83
|
-
|
84
|
-
esac
|
85
|
-
|
86
|
-
else
|
87
|
-
|
88
|
-
command="$binary $rvm_ruby_mode ${args[@]}"
|
89
|
-
|
90
|
-
fi
|
91
|
-
|
92
|
-
fi
|
93
|
-
|
94
|
-
if [[ -n "$rvm_json_flag" || -n "$rvm_yaml_flag" || -n "$rvm_summary_flag" ]] ; then
|
95
|
-
|
96
|
-
if [[ ! -d "./log/$rvm_ruby_string/" ]] ; then
|
97
|
-
mkdir -p "./log/$rvm_ruby_string/"
|
98
|
-
fi
|
99
|
-
|
100
|
-
touch "./log/$rvm_ruby_string/$action.log"
|
101
|
-
|
102
|
-
eval "$command" >> "./log/$rvm_ruby_string/$action.log" 2>&1
|
103
|
-
|
104
|
-
else
|
105
|
-
if [[ ${rvm_verbose_flag:-0} -gt 0 ]] ; then
|
106
|
-
|
107
|
-
current_env="$(__rvm_environment_identifier)"
|
108
|
-
|
109
|
-
if [[ "$current_env" != "$current_set_ruby" ]]; then
|
110
|
-
|
111
|
-
current_env="$current_set_ruby ($current_env)"
|
112
|
-
|
113
|
-
fi
|
114
|
-
|
115
|
-
"$rvm_path/scripts/log" "info" \
|
116
|
-
"$current_env: $(ruby -v $rvm_ruby_mode | \tr "\n" ' ')\n"
|
117
|
-
|
118
|
-
unset current_env
|
119
|
-
fi
|
120
|
-
eval "$command"
|
121
|
-
fi
|
122
|
-
result=$?
|
123
|
-
|
124
|
-
string=$(basename $rvm_ruby_gem_home)
|
125
|
-
|
126
|
-
if [[ $result -eq 0 ]]; then
|
127
|
-
|
128
|
-
eval "successes=(${successes[*]} $string)"
|
129
|
-
|
130
|
-
else
|
131
|
-
|
132
|
-
eval "errors=(${errors[*]} $string)"
|
133
|
-
|
134
|
-
fi
|
135
|
-
|
136
|
-
eval "rubies=(${rubies[*]} $string)"
|
137
|
-
|
138
|
-
eval "statuses=(${statuses[*]} $result)"
|
139
|
-
|
140
|
-
unset string
|
141
|
-
|
142
|
-
rvm_hook="after_do" ; source "$rvm_path/scripts/hook"
|
143
|
-
|
144
|
-
__rvm_unset_ruby_variables
|
145
|
-
}
|
146
|
-
|
147
|
-
# Output the summary in a human readable format.
|
148
|
-
__rvm_summary()
|
149
|
-
{
|
150
|
-
export successes errors statuses
|
151
|
-
|
152
|
-
summary="\nSummary:\n\n"
|
153
|
-
|
154
|
-
if [[ ${#successes[*]} -gt 0 ]] ; then
|
155
|
-
|
156
|
-
summary="$summary \033[0;32m${#successes[*]} successful: $(echo "${successes[*]}" | sed 's# #, #g')\033[0m\n"
|
157
|
-
|
158
|
-
fi
|
159
|
-
|
160
|
-
if [[ ${#errors[*]} -gt 0 ]] ; then
|
161
|
-
|
162
|
-
summary="$summary \033[0;31m${#errors[*]} errors: $(echo "${errors[*]}" | sed 's# #, #g')\033[0m\n"
|
163
|
-
|
164
|
-
fi
|
165
|
-
|
166
|
-
total=${#rubies[*]}
|
167
|
-
|
168
|
-
if [[ -n "${ZSH_VERSION:-""}" ]] ; then array_start=1 ; else array_start=0 ; fi
|
169
|
-
|
170
|
-
printf "$summary" | tee -a log/summary.log
|
171
|
-
|
172
|
-
return ${#errors[*]}
|
173
|
-
|
174
|
-
}
|
175
|
-
|
176
|
-
# Output the summary in a yaml format.
|
177
|
-
__rvm_yaml()
|
178
|
-
{
|
179
|
-
export successes errors statuses
|
180
|
-
|
181
|
-
yaml="totals:\n rubies: ${#rubies[*]}\n successes: ${#successes[*]}\n errors: ${#errors[*]}\nsuccesses:"
|
182
|
-
|
183
|
-
for var in ${successes[*]} ; do yaml="$yaml\n - $var" ; done
|
184
|
-
|
185
|
-
yaml="$yaml\nerrors:"
|
186
|
-
|
187
|
-
for var in ${errors[*]} ; do yaml="$yaml\n - $var" ; done
|
188
|
-
|
189
|
-
yaml="$yaml\nrubies:"
|
190
|
-
|
191
|
-
total=${#rubies[*]}
|
192
|
-
|
193
|
-
if [[ -n "${ZSH_VERSION:-""}" ]] ; then array_start=1 ; else array_start=0 ; fi
|
194
|
-
|
195
|
-
for (( index = $array_start ; index < $total + $array_start ; index++ )) ; do
|
196
|
-
|
197
|
-
if [[ ${rvm_debug_flag:-0} -gt 0 ]] ; then
|
198
|
-
|
199
|
-
"$rvm_path/scripts/log" "debug" "${rubies[$index]}: ${statuses[$index]}"
|
200
|
-
|
201
|
-
fi
|
202
|
-
|
203
|
-
yaml="$yaml\n \"${rubies[$index]}\": ${statuses[$index]}"
|
204
|
-
|
205
|
-
done ; unset index array_start
|
206
|
-
|
207
|
-
\mkdir -p log
|
208
|
-
|
209
|
-
printf "$yaml" | tee -a log/summary.yaml
|
210
|
-
|
211
|
-
return ${#errors[*]}
|
212
|
-
}
|
213
|
-
|
214
|
-
# Output the summary in a json format.
|
215
|
-
__rvm_json()
|
216
|
-
{
|
217
|
-
local index array_start
|
218
|
-
|
219
|
-
json="{
|
220
|
-
\"totals\": { \"rubies\": ${#rubies[*]}, \"successes\": ${#successes[*]}, \"errors\": ${#errors[*]} },
|
221
|
-
\"successful\": [$(echo \"${successes[*]}\" | sed 's# #", "#g' | sed 's#\"\"##')],
|
222
|
-
\"errors\": [$(echo \"${errors[*]}\" | sed 's# #", "#g' | sed 's#\"\"##')],
|
223
|
-
\"rubies\": { "
|
224
|
-
|
225
|
-
total=${#rubies[*]}
|
226
|
-
if [[ -n "${ZSH_VERSION:-""}" ]] ; then array_start=1 ; else array_start=0 ; fi
|
227
|
-
|
228
|
-
for (( index = $array_start ; index < $total + $array_start ; index++ )) ; do
|
229
|
-
|
230
|
-
if [[ ${rvm_debug_flag:-0} -gt 0 ]] ; then
|
231
|
-
|
232
|
-
"$rvm_path/scripts/log" "debug" "${rubies[$index]}: ${statuses[$index]}"
|
233
|
-
|
234
|
-
fi
|
235
|
-
|
236
|
-
json="$json\n {\"${rubies[$index]}\": ${statuses[$index]}}"
|
237
|
-
|
238
|
-
if (( $index + 1 < $total + $array_start )) ; then json="$json, " ; fi
|
239
|
-
|
240
|
-
done
|
241
|
-
|
242
|
-
json="$json\n }\n}"
|
243
|
-
|
244
|
-
if [[ ! -d log ]] ; then
|
245
|
-
mkdir -p log
|
246
|
-
fi
|
247
|
-
|
248
|
-
printf "$json" | tee -a log/summary.json
|
249
|
-
|
250
|
-
return ${#errors[*]}
|
251
|
-
}
|
252
|
-
|
253
|
-
# Loop over a set or all rvm installed rubies to perform some action.
|
254
|
-
# Record the results and report based on CLI selections.
|
255
|
-
|
256
|
-
rubies=() ; successes=() ; errors=() ; statuses=()
|
257
|
-
|
258
|
-
args=($*)
|
259
|
-
action="${args[$__array_start]}"
|
260
|
-
args[$__array_start]=""
|
261
|
-
args=(${args[@]})
|
262
|
-
|
263
|
-
if [[ -z "$action" ]] ; then
|
264
|
-
|
265
|
-
"$rvm_path/scripts/log" "error" \
|
266
|
-
"Action must be specified."
|
267
|
-
|
268
|
-
exit 1
|
269
|
-
|
270
|
-
fi
|
271
|
-
|
272
|
-
if [[ "$action" == "ruby" ]] && echo "$args" | \grep -q "^'--[^[:space:]]*'$" ; then
|
273
|
-
|
274
|
-
"$rvm_path/scripts/log" "warn" \
|
275
|
-
"You called rvm ruby with the arguments $args which look like use options."
|
276
|
-
|
277
|
-
"$rvm_path/scripts/log" "warn" \
|
278
|
-
"Please note that 'rvm ruby' invokes set operations instead."
|
279
|
-
|
280
|
-
fi
|
281
|
-
|
282
|
-
rvm_ruby_strings=$(__rvm_expand_ruby_string "$rvm_ruby_strings")
|
283
|
-
|
284
|
-
rvm_ruby_strings=(${rvm_ruby_strings//default}) # No quotes here is intentional.
|
285
|
-
|
286
|
-
# Check for a single ruby && exec if present.
|
287
|
-
__rvm_attempt_single_exec
|
288
|
-
|
289
|
-
for current_set_ruby in ${rvm_ruby_strings[@]} ; do
|
290
|
-
__rvm_ruby_do
|
291
|
-
done
|
292
|
-
|
293
|
-
if [[ ! -z "$rvm_summary_flag" ]] ; then __rvm_summary ; fi
|
294
|
-
|
295
|
-
if [[ ! -z "$rvm_yaml_flag" ]] ; then __rvm_yaml ; fi
|
296
|
-
|
297
|
-
if [[ ! -z "$rvm_json_flag" ]] ; then __rvm_json ; fi
|
298
|
-
|
299
|
-
rvm_hook="after_do" ; source "$rvm_path/scripts/hook"
|
300
|
-
|
301
|
-
exit ${#errors[*]}
|
data/scripts/snapshot
DELETED
@@ -1,262 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
unset GREP_COLOR
|
4
|
-
unset GREP_OPTIONS
|
5
|
-
|
6
|
-
source "$rvm_path/scripts/base"
|
7
|
-
|
8
|
-
__error_on_result()
|
9
|
-
{
|
10
|
-
if [[ "$1" -gt 0 ]]; then
|
11
|
-
"$rvm_path/scripts/log" "fail" "$2 - Aborting now."
|
12
|
-
return 0
|
13
|
-
else
|
14
|
-
return 1
|
15
|
-
fi
|
16
|
-
}
|
17
|
-
|
18
|
-
snapshot_save()
|
19
|
-
{
|
20
|
-
if [[ -z "$1" ]]; then
|
21
|
-
|
22
|
-
printf "
|
23
|
-
|
24
|
-
Usage:
|
25
|
-
|
26
|
-
rvm snapshot save name
|
27
|
-
|
28
|
-
Description:
|
29
|
-
|
30
|
-
Saves a snapshot describing the rvm installation
|
31
|
-
to <name>.tar.gz in the current working directory.\
|
32
|
-
|
33
|
-
" >&2
|
34
|
-
|
35
|
-
return 1
|
36
|
-
|
37
|
-
fi
|
38
|
-
|
39
|
-
# Create the temporary directory.
|
40
|
-
local snapshot_temp_path="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-snapshot"
|
41
|
-
|
42
|
-
rm -rf "$snapshot_temp_path"
|
43
|
-
|
44
|
-
mkdir -p "$snapshot_temp_path"
|
45
|
-
|
46
|
-
"$rvm_path/scripts/log" "info" "Backing up a list of aliases"
|
47
|
-
cp "$rvm_path/config/alias" "$snapshot_temp_path/"
|
48
|
-
|
49
|
-
"$rvm_path/scripts/log" "info" "Backing up your user preferences"
|
50
|
-
cp "$rvm_path/config/user" "$snapshot_temp_path/"
|
51
|
-
|
52
|
-
"$rvm_path/scripts/log" "info" "Backing up your installed packages"
|
53
|
-
sed -e 's/-//' -e 's/^lib//' < "$rvm_path/config/packages" | awk -F= '{print $1}' | sort | uniq > "$snapshot_temp_path/packages"
|
54
|
-
|
55
|
-
"$rvm_path/scripts/log" "info" "Backing up all of your gemsets"
|
56
|
-
mkdir -p "$snapshot_temp_path/gems"
|
57
|
-
|
58
|
-
(
|
59
|
-
builtin cd "$snapshot_temp_path/gems"
|
60
|
-
|
61
|
-
for snapshot_gemset in $("$rvm_path/scripts/list" gemsets strings) ; do
|
62
|
-
|
63
|
-
__rvm_become "$snapshot_gemset" ; result="$?"
|
64
|
-
|
65
|
-
__error_on_result "$result" "Error becoming ruby $snapshot_gemset" && return "$result"
|
66
|
-
|
67
|
-
"$rvm_path/scripts/gemsets" export "${snapshot_gemset}.gems" >/dev/null ; result="$?"
|
68
|
-
|
69
|
-
__error_on_result "$result" "Error exporting gemset contents for $snapshot_gemset" && return "$result"
|
70
|
-
|
71
|
-
mkdir -p "./$snapshot_gemset/"
|
72
|
-
|
73
|
-
[[ -d "$GEM_HOME/cache/" ]] && \cp -R "$GEM_HOME/cache/" "./$snapshot_gemset/"
|
74
|
-
|
75
|
-
done
|
76
|
-
)
|
77
|
-
|
78
|
-
"$rvm_path/scripts/log" "info" "Backing up all of your installed rubies"
|
79
|
-
|
80
|
-
echo '#!/usr/bin/env bash -e' > "$snapshot_temp_path/install-rubies.sh"
|
81
|
-
|
82
|
-
echo "source \"\$rvm_path/scripts/rvm\" || true" >> "$snapshot_temp_path/install-rubies.sh"
|
83
|
-
|
84
|
-
local snapshot_ruby_name_file="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-rubies"
|
85
|
-
|
86
|
-
local snapshot_alias_name_file="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-aliases"
|
87
|
-
|
88
|
-
local snapshot_installable_file="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-installable"
|
89
|
-
|
90
|
-
"$rvm_path/scripts/alias" list | awk -F ' => ' '{print $1}' | sort | uniq 2>/dev/null > "$snapshot_alias_name_file"
|
91
|
-
|
92
|
-
"$rvm_path/scripts/list" strings | \tr ' ' '\n' | sort | uniq > "$snapshot_ruby_name_file"
|
93
|
-
|
94
|
-
comm -2 -3 "$snapshot_ruby_name_file" "$snapshot_alias_name_file" > "$snapshot_installable_file"
|
95
|
-
|
96
|
-
rm -rf "$snapshot_ruby_name_file" "$snapshot_alias_name_file"
|
97
|
-
|
98
|
-
local snapshot_primary_ruby="$(\grep '^\(ree\|ruby-1.8.7\)' < "$snapshot_installable_file" | \grep -v '-head$' | sort -r | head -n1)"
|
99
|
-
|
100
|
-
local snapshot_ruby_order="$snapshot_primary_ruby $(\grep -v "$snapshot_primary_ruby" < "$snapshot_installable_file")"
|
101
|
-
|
102
|
-
for snapshot_ruby_name in $snapshot_ruby_order ; do
|
103
|
-
|
104
|
-
snapshot_install_command="$(__rvm_recorded_install_command "$snapshot_ruby_name")"
|
105
|
-
|
106
|
-
if [[ -n "$snapshot_install_command" ]]; then
|
107
|
-
|
108
|
-
echo "rvm install $snapshot_install_command" | sed "s#$rvm_path#'\\\"\$rvm_path\\\"'#" >> "$snapshot_temp_path/install-rubies.sh"
|
109
|
-
|
110
|
-
else
|
111
|
-
|
112
|
-
__rvm_become "$snapshot_ruby_name"
|
113
|
-
|
114
|
-
ruby "$rvm_path/lib/rvm/install_command_dumper.rb" >> "$snapshot_temp_path/install-rubies.sh"
|
115
|
-
|
116
|
-
fi
|
117
|
-
|
118
|
-
unset snapshot_install_command
|
119
|
-
|
120
|
-
done; unset snapshot_ruby_name snapshot_primary_ruby
|
121
|
-
|
122
|
-
rm -rf "$snapshot_installable_file"
|
123
|
-
|
124
|
-
"$rvm_path/scripts/log" "info" "Compressing snapshotting"
|
125
|
-
|
126
|
-
local destination_path="$PWD"
|
127
|
-
(
|
128
|
-
builtin cd "$snapshot_temp_path"
|
129
|
-
rm -rf "$destination_path/$1.tar.gz"
|
130
|
-
tar czf "$destination_path/$1.tar.gz" .
|
131
|
-
result="$?"
|
132
|
-
__error_on_result "$result" "Error creating archive $destination_path/$1.tar.gz" && return "$result"
|
133
|
-
)
|
134
|
-
|
135
|
-
"$rvm_path/scripts/log" "info" "Cleaning up"
|
136
|
-
|
137
|
-
rm -rf "$snapshot_temp_path"
|
138
|
-
|
139
|
-
"$rvm_path/scripts/log" "info" "Snapshot complete"
|
140
|
-
}
|
141
|
-
|
142
|
-
snapshot_load()
|
143
|
-
{
|
144
|
-
local package_info
|
145
|
-
|
146
|
-
if [[ -z "$1" ]]; then
|
147
|
-
echo "Usage: rvm snapshot load name" >&2
|
148
|
-
echo "Loads a snapshot from <name>.tar.gz in the current directory." >&2
|
149
|
-
return 1
|
150
|
-
fi
|
151
|
-
|
152
|
-
local snapshot_archive="$PWD/$(echo "$1" | sed 's/.tar.gz$//').tar.gz"
|
153
|
-
|
154
|
-
if ! [[ -s "$snapshot_archive" ]]; then
|
155
|
-
echo "The provides snapshot '$(basename "$snapshot_archive")' doesn't exist." >&2
|
156
|
-
return 1
|
157
|
-
fi
|
158
|
-
|
159
|
-
local snapshot_temp_path="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-snapshot"
|
160
|
-
|
161
|
-
\rm -rf "$snapshot_temp_path"
|
162
|
-
\mkdir -p "$snapshot_temp_path"
|
163
|
-
|
164
|
-
"$rvm_path/scripts/log" "info" "Extracting snapshot"
|
165
|
-
(
|
166
|
-
builtin cd "$snapshot_temp_path"
|
167
|
-
tar xzf "$snapshot_archive"
|
168
|
-
result="$?"
|
169
|
-
__error_on_result "$result" "Error extracting the archive '$snapshot_archive'" && return "$result"
|
170
|
-
)
|
171
|
-
|
172
|
-
"$rvm_path/scripts/log" "info" "Restoring user settings"
|
173
|
-
\cp -f "$snapshot_temp_path/user" "$rvm_path/config/user"
|
174
|
-
|
175
|
-
"$rvm_path/scripts/log" "info" "Installing rvm-managed packages"
|
176
|
-
for snapshot_package in $(cat "$snapshot_temp_path/packages"); do
|
177
|
-
"$rvm_path/scripts/package" install "$snapshot_package"
|
178
|
-
result="$?"
|
179
|
-
__error_on_result "$result" "Error installing package '$snapshot_package'" && return "$result"
|
180
|
-
done; unset snapshot_package
|
181
|
-
|
182
|
-
"$rvm_path/scripts/log" "info" "Installing rubies"
|
183
|
-
|
184
|
-
chmod +x "$snapshot_temp_path/install-rubies.sh"
|
185
|
-
|
186
|
-
"$snapshot_temp_path/install-rubies.sh"
|
187
|
-
result="$?"
|
188
|
-
|
189
|
-
__error_on_result "$result" "Error importing rubies." && return "$result"
|
190
|
-
|
191
|
-
export rvm_create_flag=1
|
192
|
-
|
193
|
-
"$rvm_path/scripts/log" "info" "Setting up gemsets"
|
194
|
-
|
195
|
-
(
|
196
|
-
builtin cd "$snapshot_temp_path/gems"
|
197
|
-
|
198
|
-
gems=($(find . -mindepth 0 -maxdepth 0 -type f -iname '*.gems' | sed 's/.gems$//'))
|
199
|
-
|
200
|
-
for snapshot_gemset in "${gems[@]//.\/}" ; do
|
201
|
-
|
202
|
-
__rvm_become "$snapshot_gemset"
|
203
|
-
result="$?"
|
204
|
-
|
205
|
-
__error_on_result "$result" \
|
206
|
-
"Error becoming '$snapshot_gemset'" && return "$result"
|
207
|
-
|
208
|
-
mkdir -p "$GEM_HOME/cache/"
|
209
|
-
|
210
|
-
cp -Rf "$snapshot_gemset/" "$GEM_HOME/cache/"
|
211
|
-
result="$?"
|
212
|
-
|
213
|
-
__error_on_result "$result" \
|
214
|
-
"Error copying across cache for $snapshot_gemset" && return "$result"
|
215
|
-
|
216
|
-
"$rvm_path/scripts/gemsets" import "$snapshot_gemset" >/dev/null 2>&1
|
217
|
-
result="$?"
|
218
|
-
|
219
|
-
__error_on_result "$result" \
|
220
|
-
"Error importing gemset for $snapshot_gemset" && return "$result"
|
221
|
-
done
|
222
|
-
)
|
223
|
-
|
224
|
-
"$rvm_path/scripts/log" "info" "Restoring aliases"
|
225
|
-
|
226
|
-
while read -r package_info; do
|
227
|
-
# Note: this assumes an '=' int the input...
|
228
|
-
local alias_name="${package_info/=*}"
|
229
|
-
local alias_ruby="${package_info/*=}"
|
230
|
-
|
231
|
-
"$rvm_path/scripts/alias" create "$alias_name" "$alias_ruby"
|
232
|
-
if [[ "$alias_name" = "default" ]]; then
|
233
|
-
(source "$rvm_path/scripts/rvm" && rvm use "$alias_ruby" --default) >/dev/null 2>&1
|
234
|
-
result="$?"
|
235
|
-
__error_on_result "$result" "Error setting default to $alias_ruby" && return "$result"
|
236
|
-
fi
|
237
|
-
done < "$snapshot_temp_path/alias"
|
238
|
-
|
239
|
-
"$rvm_path/scripts/log" "info" "Cleaning up load process"
|
240
|
-
\rm -rf "$snapshot_temp_path"
|
241
|
-
|
242
|
-
"$rvm_path/scripts/log" "info" "Loaded snapshot from $(basename "$snapshot_archive")"
|
243
|
-
}
|
244
|
-
|
245
|
-
snapshot_usage()
|
246
|
-
{
|
247
|
-
echo "Usage: rvm snapshot {save,load} file" >&2
|
248
|
-
return 1
|
249
|
-
}
|
250
|
-
|
251
|
-
|
252
|
-
args=($*)
|
253
|
-
action="${args[0]}"
|
254
|
-
args="$(echo ${args[@]:1}) " # Strip trailing / leading / extra spacing.
|
255
|
-
|
256
|
-
case "$action" in
|
257
|
-
save) snapshot_save "$args" ;;
|
258
|
-
load) snapshot_load "$args" ;;
|
259
|
-
*) snapshot_usage ;;
|
260
|
-
esac
|
261
|
-
|
262
|
-
exit $?
|