rvm 1.0.5 → 1.0.6

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.
@@ -4,11 +4,12 @@ source "$rvm_scripts_path/base"
4
4
 
5
5
  __rvm_attempt_single_exec() {
6
6
  # Return if we have multiple rubies. or we're not running exec.
7
- local ruby_string_lines="$(printf "$rvm_ruby_strings" | wc -l | __rvm_strip)"
8
- if [[ "$action" = "exec" && -n "$rvm_ruby_strings" && "$ruby_string_lines" = "0" ]]; then
7
+ if [[ "$action" = "exec" && ${#rvm_ruby_strings[@]} -lt 2 ]]; then
9
8
  __rvm_become "$rvm_ruby_strings"
9
+
10
10
  eval "exec ${args[@]}"
11
11
  fi
12
+
12
13
  return 1
13
14
  }
14
15
 
@@ -16,9 +17,11 @@ __rvm_attempt_single_exec() {
16
17
  __rvm_ruby_do() {
17
18
  # Return on invalid rubies.
18
19
  __rvm_become "$current_set_ruby" || return 1
20
+
19
21
  if [[ "$action" = "exec" ]]; then
20
22
  # Exec is a special case.
21
23
  rvm_command="$args"
24
+
22
25
  else
23
26
  binary="$(echo $action | sed 's#do$##')"
24
27
  if [[ -x "$rvm_ruby_home/bin/$binary" ]] ; then
@@ -46,7 +49,7 @@ __rvm_ruby_do() {
46
49
 
47
50
  load_path="$(dirname $(command -v $binary) 2>/dev/null):$rvm_ruby_load_path"
48
51
  # TODO: the else case below should be run if $args =~ /\.rb$/
49
- if [[ "ruby" = "$(basename $binary)" ]] && [[ "$rvm_benchmark_flag" -ne 1 ]] ; then
52
+ if [[ "ruby" = "$(basename $binary)" && "$rvm_benchmark_flag" -ne 1 ]] ; then
50
53
 
51
54
  if "$rvm_scripts_path/match" "$args" "\.rb$" ; then
52
55
 
@@ -153,7 +156,7 @@ __rvm_json() {
153
156
  done ; unset index array_start
154
157
  json="$json\n }\n}"
155
158
 
156
- \mkdir -p log
159
+ mkdir -p log
157
160
  printf "$json" | tee -a log/summary.json
158
161
 
159
162
  return ${#errors[*]}
@@ -178,12 +181,13 @@ if [[ "$action" == "ruby" ]] && echo "$args" | \grep -q "^'--[^[:space:]]*'$" ;
178
181
  "$rvm_scripts_path/log" "warn" "Please note that 'rvm ruby' invokes set operations instead."
179
182
  fi
180
183
 
181
- rvm_ruby_strings="$(__rvm_expand_ruby_string "$rvm_ruby_strings")"
184
+ rvm_ruby_strings=$(__rvm_expand_ruby_string "$rvm_ruby_strings")
185
+ rvm_ruby_strings=(${rvm_ruby_strings//default}) # No quotes here is intentional.
182
186
 
183
187
  # Check for a single ruby && exec if present.
184
188
  __rvm_attempt_single_exec
185
189
 
186
- for current_set_ruby in ${rvm_ruby_strings} ; do
190
+ for current_set_ruby in ${rvm_ruby_strings[@]} ; do
187
191
  __rvm_ruby_do
188
192
  done
189
193
 
@@ -143,12 +143,12 @@ snapshot_load() {
143
143
  "$rvm_scripts_path/log" "info" "Setting up gemsets"
144
144
  (
145
145
  builtin cd "$snapshot_temp_path/gems"
146
- for snapshot_gemset in $(\ls | \grep '\.gems$' | sed 's/.gems$//'); do
146
+ for snapshot_gemset in $(find * -iname '*.gems' -type f -maxdepth 0 | sed 's/.gems$//'); do
147
147
  __rvm_become "$snapshot_gemset"
148
148
  result="$?"
149
149
  __error_on_result "$result" "Error becoming '$snapshot_gemset'" && return "$result"
150
- \mkdir -p "$GEM_HOME/cache/"
151
- \cp -Rf "$snapshot_gemset/" "$GEM_HOME/cache/"
150
+ mkdir -p "$GEM_HOME/cache/"
151
+ cp -Rf "$snapshot_gemset/" "$GEM_HOME/cache/"
152
152
  result="$?"
153
153
  __error_on_result "$result" "Error copying across cache for $snapshot_gemset" && return "$result"
154
154
  "$rvm_scripts_path/gemsets" import "$snapshot_gemset" >/dev/null 2>&1
@@ -383,7 +383,8 @@ for file in rvm rvmsudo rvm-shell rvm-auto-ruby ; do
383
383
  [[ -s "$rvm_bin_path/$file" ]] && chmod +x "$rvm_bin_path/$file"
384
384
  done; unset file
385
385
  printf "\n Copying manpages into place."
386
- for man_file in $(ls "$install_source_path/man"); do
386
+
387
+ for man_file in $(builtin cd "$install_source_path/man" ; find * -type f -maxdepth 0 -print); do
387
388
  rm -rf "$rvm_man_path/$man_file"
388
389
  cp -R "$install_source_path/man/$man_file" "$rvm_man_path/"
389
390
  done
@@ -10,9 +10,13 @@ usage() {
10
10
  }
11
11
 
12
12
  confirm() {
13
- printf "$1 (Y/n): "
13
+
14
14
  local confirmation_response
15
+
16
+ printf "$1 (Y/n): "
17
+
15
18
  read -r confirmation_response
19
+
16
20
  [[ -z "$confirmation_response" ]] || echo $confirmation_response | \grep -qi '^y\|^Y'
17
21
  }
18
22
 
@@ -26,33 +30,49 @@ expand_ruby_name() {
26
30
  }
27
31
 
28
32
  expand_existing_ruby() {
29
- local prefix="$(expand_ruby_name "$1" | awk -F'-' '{print $1"-"$2}')"
30
- local ruby_name
33
+ local prefix ruby_name
34
+
35
+ prefix="$(expand_ruby_name "$1" | awk -F'-' '{print $1"-"$2}')"
36
+
31
37
  while read -r ruby_name; do
38
+
32
39
  if [[ "$ruby_name" != "$expanded_destination"* ]]; then
33
40
  echo "$ruby_name" ; return 0
34
41
  fi
42
+
35
43
  done < <("$rvm_scripts_path/list" strings | tr ' ' '\n' | sort -ur | \grep "^$prefix" | \grep -v '-head$' | head -n1)
44
+
36
45
  return 1
37
46
  }
38
47
 
39
48
  upgrade_ruby() {
49
+
40
50
  [[ -z "$source_ruby" ]] && die_with_error "Unable to find a source ruby. Please manually provide one."
41
51
 
42
52
  expanded_source="$(expand_ruby_name "$source_ruby")"
53
+
43
54
  [[ -z "$expanded_source" ]] && die_with_error "The source ruby was not a valid ruby string."
44
55
 
45
56
  confirm "Are you sure you wish to upgrade from $expanded_source to $expanded_destination?" || die_with_error "Cancelling upgrade."
46
57
 
47
58
  if [[ ! -d "$rvm_rubies_path/$expanded_destination" ]]; then
48
- "$rvm_scripts_path/log" "info" "Installing new ruby $expanded_destination"
59
+
60
+ "$rvm_scripts_path/log" "info" \
61
+ "Installing new ruby $expanded_destination"
62
+
49
63
  $rvm_bin_path/rvm install "$expanded_destination"
64
+
50
65
  result="$?" ; [[ "$result" -gt 0 ]] && die_with_error "Unable to install ruby $expanded_destination. Please install it manually to continue." "$result"
66
+
51
67
  fi
52
68
 
53
- "$rvm_scripts_path/log" "info" "Migrating gems from $expanded_source to $expanded_destination"
69
+ "$rvm_scripts_path/log" "info" \
70
+ "Migrating gems from $expanded_source to $expanded_destination"
71
+
54
72
  "$rvm_scripts_path/migrate" "$expanded_source" "$expanded_destination"
55
- result="$?" ; [[ "$result" -gt 0 ]] && die_with_error "Error migrating gems." "$result"
73
+ result="$?"
74
+
75
+ [[ "$result" -gt 0 ]] && die_with_error "Error migrating gems." "$result"
56
76
 
57
77
  "$rvm_scripts_path/log" "info" "Upgrade complete!"
58
78
  }
@@ -67,6 +87,7 @@ args="$(echo ${args[@]:2}) " # Strip trailing / leading / extra spacing.
67
87
  expanded_destination="$(expand_ruby_name "$destination_ruby")"
68
88
 
69
89
  [[ -z "$source_ruby" ]] && die_with_error "The Source ruby was not specified, a valid ruby string, or not found."
90
+
70
91
  [[ -z "$expanded_destination" ]] && die_with_error "The destination ruby was not a valid ruby string, or not found."
71
92
 
72
93
  upgrade_ruby
@@ -48,33 +48,48 @@ __rvm_teardown() {
48
48
 
49
49
  # Dump the current environment to a file.
50
50
  __rvm_dump_environment() {
51
+
51
52
  # Note: This assumes that there is a ','
52
- local dump_environment_file="${rvm_dump_environment_flag/,*/}"
53
- local dump_environment_type="${rvm_dump_environment_flag/*,/}"
53
+ local dump_environment_file dump_environment_type rvm_dump_environment_flag
54
+
55
+ dump_environment_file="${rvm_dump_environment_flag/,*/}"
56
+
57
+ dump_environment_type="${rvm_dump_environment_flag/*,/}"
58
+
54
59
  if [[ -n "$dump_environment_file" && -n "$dump_environment_type" ]]; then
60
+
55
61
  if [[ "$dump_environment_type" == "atheis"* ]] && [[ -f "$dump_environment_file" ]] ; then
56
62
  # TODO: Query Darcy about the ln.
57
63
  \rm -f "$dump_environment_file" && ln -s /dev/null "$dump_environment_file" >/dev/null 2>&1
64
+
58
65
  else
59
66
  "$rvm_scripts_path/environment-convertor" "$dump_environment_type" "$(__rvm_environment_identifier)" > "$dump_environment_file"
60
- if [[ "$?" -gt 0 ]] && [[ -f "$dump_environment_file" ]] ; then
67
+ if [[ "$?" -gt 0 && -f "$dump_environment_file" ]] ; then
61
68
  \rm -f "$dump_environment_file"
62
69
  fi
63
70
  fi
64
- fi ; unset rvm_dump_environment_flag
71
+ fi
72
+
65
73
  return 0
66
74
  }
67
75
 
68
76
  # Return a list of directories under a given base path.
69
77
  # Derived from rvm_ruby_string.
70
78
  __rvm_ruby_string_paths_under() {
71
- local path="$1"
72
- local path_parts="${rvm_ruby_string//-/ }"
79
+ local path path_parts
80
+
81
+ path="$1"
82
+
83
+ path_parts="${rvm_ruby_string//-/ }"
73
84
 
74
85
  while true ; do
86
+
75
87
  echo "$path/$path_parts" | sed -e 's# #/#g' -e 's#/$##g'
88
+
76
89
  [[ -z "$path_parts" ]] && break
90
+
77
91
  path_parts="$(echo "$path_parts" | awk '{$NF=""; print}' | __rvm_strip)"
92
+
78
93
  done
79
94
 
80
95
  return 0
@@ -83,7 +98,7 @@ __rvm_ruby_string_paths_under() {
83
98
  # Query the rvm key-value database for a specific key
84
99
  # Allow overrides from user specifications in $rvm_config_path/user
85
100
  __rvm_db() {
86
- local value="" key="" variable=""
101
+ local value key variable
87
102
 
88
103
  key=${1:-""}
89
104
  variable=${2:-""}
@@ -111,29 +126,45 @@ is_a_function() { type $1 | head -n 1 | \grep -q "function" ; }
111
126
 
112
127
  __rvm_quote_args() {
113
128
  local quoted_string=""
129
+
114
130
  for quoted_argument in "$@"; do
131
+
115
132
  if printf "%s" "$quoted_argument" | \grep -vq "^[[:alnum:]]$"; then
133
+
116
134
  quoted_string="$quoted_string '$(printf "%s" "$quoted_argument" | sed "s/'/\'\\\'\'/g")'"
135
+
117
136
  else
118
137
  quoted_string="$quoted_string $quoted_argument"
119
138
  fi
120
139
  done
140
+
121
141
  echo "$quoted_string" | sed -e 's/^ *//g' -e 's/ *$//g'
142
+
122
143
  return 0
123
144
  }
124
145
 
125
146
  __rvm_quote_args_with_shift() {
147
+
126
148
  local shift_value="$1"; shift
127
- while [[ "$shift_value" -gt 0 && "$#" -gt 0 ]]; do
128
- shift ; ((shift_value--))
149
+
150
+ while [[ "$shift_value" -gt 0 && $# -gt 0 ]]; do
151
+
152
+ shift
153
+
154
+ ((shift_value--))
155
+
129
156
  done
157
+
130
158
  __rvm_quote_args "$@"
159
+
131
160
  return 0
132
161
  }
133
162
 
134
163
  __rvm_warn_on_rubyopt() {
135
- if [[ -n "$RUBYOPT" ]]; then
136
- "$rvm_scripts_path"/log "warn" "Please note: You have the RUBYOPT environment variable set and this may interfere with normal rvm operations. We sugges unsetting it."
164
+
165
+ if [[ -n "${RUBYOPT:-""}" ]]; then
166
+ "$rvm_scripts_path"/log "warn" \
167
+ "Please note: You have the RUBYOPT environment variable set and this may interfere with normal rvm operations. We sugges unsetting it."
137
168
  return 1
138
169
  else
139
170
  return 0
@@ -141,52 +172,76 @@ __rvm_warn_on_rubyopt() {
141
172
  }
142
173
 
143
174
  __rvm_strings() {
144
- local strings=""
145
- for rvm_ruby_string in $(echo ${rvm_ruby_args:-$rvm_ruby_string}) ; do
175
+ local strings ruby_strings
176
+
177
+ ruby_strings=($(echo ${rvm_ruby_args:-$rvm_ruby_string}))
178
+
179
+ for rvm_ruby_string in "${ruby_strings[@]}" ; do
146
180
  strings="$strings $(__rvm_select ; echo $rvm_ruby_string)"
147
181
  done
182
+
148
183
  echo $strings
184
+
149
185
  return 0
150
186
  }
151
187
 
152
188
  # Push an item onto a given array.
153
189
  __rvm_push() {
190
+
191
+ local array item
192
+
154
193
  array=$1 ; shift ; item=$2
194
+
155
195
  # TODO: allow loop over more arguments.
156
196
  eval "index=\$((\${#${array}[*]} + $__shell_array_start))"
197
+
157
198
  eval "${array}[${index}]=${item}"
158
- unset array item
199
+
200
+ return 0
159
201
  }
160
202
 
161
203
  __rvm_set_path_variable() {
204
+
162
205
  if [[ -d "$1" ]] ; then
163
206
  eval "${path_variable}=${1}"
207
+
164
208
  else
165
- "$rvm_scripts_path/log" "error" "'$1' is not a valid path."
166
- fi ; unset path_variable
209
+ "$rvm_scripts_path/log" "error" \
210
+ "'$1' is not a valid path."
211
+ unset path_variable
212
+ fi
213
+
214
+ return 0
167
215
  }
168
216
 
169
217
  # Clean all *duplicate* items out of the path. (keep first occurrence of each)
170
218
  __rvm_clean_path() {
171
219
  PATH="$(echo $PATH | \tr -s ':' '\n' | awk '!($0 in a){a[$0];print}' | \tr -s '\n' ':' | sed 's#:$##')"
220
+
172
221
  export PATH
222
+
173
223
  builtin hash -r
174
224
  }
175
225
 
176
226
  # Clean all rvm items out of the current working path.
177
227
  __rvm_remove_rvm_from_path() {
178
- PATH="$(echo $PATH | \tr -s ':' '\n' | \grep -v "$rvm_path" | \tr -s '\n' ':' | sed 's#:$##')"
228
+ PATH="${PATH//${rvm_path}*rvm\/bin:}"
229
+
179
230
  export PATH
231
+
180
232
  builtin hash -r
181
233
  }
182
234
 
183
235
  # Run a specified command and log it.
184
236
  __rvm_run() {
185
- local log_file_name="${1:-""}"
186
- local command="${2:-""}"
187
- local message="${3:-""}"
188
237
 
189
- if [[ -z "$rvm_ruby_log_path" ]] ; then rvm_ruby_log_path="$rvm_log_path" ; fi
238
+ local log_file_name command message
239
+
240
+ log_file_name="${1:-""}"
241
+ command="${2:-""}"
242
+ message="${3:-""}"
243
+
244
+ if [[ -z "${rvm_ruby_log_path:-""}" ]] ; then rvm_ruby_log_path="$rvm_log_path" ; fi
190
245
 
191
246
  if [[ -n "$message" ]] ; then "$rvm_scripts_path/log" "info" "$message" ; fi
192
247
 
@@ -207,8 +262,11 @@ __rvm_run() {
207
262
  eval "nice -n $rvm_niceness $command" >> $rvm_ruby_log_path/$log_file_name.log 2>> $rvm_ruby_log_path/$log_file_name.error.log
208
263
  fi
209
264
  )
210
- local result=$? ; if [[ $result -gt 0 ]] ; then
211
- "$rvm_scripts_path/log" "error" "Error running '$command', please check $rvm_ruby_log_path/$log_file_name*.log"
265
+ local result=$?
266
+
267
+ if [[ $result -gt 0 ]] ; then
268
+ "$rvm_scripts_path/log" "error" \
269
+ "Error running '$command', please check $rvm_ruby_log_path/$log_file_name*.log"
212
270
  fi
213
271
 
214
272
  return $result
@@ -216,10 +274,13 @@ __rvm_run() {
216
274
 
217
275
  # Runs a command in a given env.
218
276
  __rvm_run_with_env() {
219
- local log_file_name="${1:-""}"
220
- local env_name="${2:-""}"
221
- local command="${3:-""}"
222
- local message="${4:-""}"
277
+
278
+ local log_file_name env_name comand message
279
+
280
+ log_file_name="${1:-""}"
281
+ env_name="${2:-""}"
282
+ command="${3:-""}"
283
+ message="${4:-""}"
223
284
 
224
285
  if [[ -z "$env_name" ]]; then env_name="$(__rvm_environment_identifier)"; fi
225
286
 
@@ -244,8 +305,11 @@ __rvm_run_with_env() {
244
305
  eval "nice -n $rvm_niceness __rvm_with_env '$env_name' '$command'" >> $rvm_ruby_log_path/$log_file_name.log 2>> $rvm_ruby_log_path/$log_file_name.error.log
245
306
  fi
246
307
  )
247
- result=$? ; if [[ $result -gt 0 ]] ; then
248
- "$rvm_scripts_path/log" "error" "Error running '$command' under $env_name, please check $rvm_ruby_log_path/$log_file_name*.log"
308
+ result=$?
309
+
310
+ if [[ $result -gt 0 ]] ; then
311
+ "$rvm_scripts_path/log" "error" \
312
+ "Error running '$command' under $env_name, please check $rvm_ruby_log_path/$log_file_name*.log"
249
313
  fi
250
314
 
251
315
  return $result
@@ -257,7 +321,7 @@ __rvm_nuke_rvm_variables() {
257
321
 
258
322
  # Unset ruby-specific variables
259
323
  __rvm_unset_ruby_variables() {
260
- unset rvm_head_flag $(env | awk -F= '/^rvm_ruby_/{printf $1" "}')
324
+ unset rvm_ruby_flag $(env | awk -F= '/^rvm_ruby_/{printf $1" "}')
261
325
  }
262
326
 
263
327
  # TODO: Should be able to...
@@ -268,40 +332,61 @@ __rvm_cleanse_variables() {
268
332
 
269
333
  if [[ ${rvm_sticky_flag:-0} -eq 1 ]] ; then export rvm_gemset_name ; else unset rvm_gemset_name ; fi
270
334
 
271
- unset rvm_action rvm_irbrc_file rvm_command rvm_error_message rvm_force_flag rvm_all_flag rvm_reconfigure_flag rvm_make_flags rvm_bin_flag rvm_import_flag rvm_export_flag rvm_self_flag rvm_gem_flag rvm_rubygems_flag rvm_debug_flag rvm_delete_flag rvm_summary_flag rvm_test_flag _rvm_spec_flag rvm_json_flag rvm_yaml_flag rvm_shebang_flag rvm_env_flag rvm_tail_flag rvm_use_flag rvm_dir_flag rvm_list_flag rvm_empty_flag rvm_file_name rvm_benchmark_flag rvm_clear_flag rvm_name_flag rvm_verbose_flag rvm_user_flag rvm_system_flag rvm_ruby_configure_flags rvm_uninstall_flag rvm_install_flag rvm_llvm_flag rvm_ruby_bits rvm_sticky_flag rvm_rvmrc_flag rvm_gems_flag rvm_only_path_flag rvm_docs_flag rvm_ruby_aliases rvm_patch_names rvm_clang_flag rvm_install_arguments rvm_dump_environment_flag rvm_ruby_alias
335
+ unset rvm_action rvm_irbrc_file rvm_command rvm_error_message rvm_force_flag rvm_all_flag rvm_reconfigure_flag rvm_make_flags rvm_bin_flag rvm_import_flag rvm_export_flag rvm_self_flag rvm_gem_flag rvm_rubygems_flag rvm_debug_flag rvm_delete_flag rvm_summary_flag rvm_test_flag _rvm_spec_flag rvm_json_flag rvm_yaml_flag rvm_shebang_flag rvm_env_flag rvm_tail_flag rvm_use_flag rvm_dir_flag rvm_list_flag rvm_empty_flag rvm_file_name rvm_benchmark_flag rvm_clear_flag rvm_name_flag rvm_verbose_flag rvm_user_flag rvm_system_flag rvm_configure_flags rvm_uninstall_flag rvm_install_flag rvm_llvm_flag rvm_ruby_bits rvm_sticky_flag rvm_rvmrc_flag rvm_gems_flag rvm_only_path_flag rvm_docs_flag rvm_ruby_aliases rvm_patch_names rvm_clang_flag rvm_install_arguments rvm_dump_environment_flag rvm_ruby_alias
272
336
  }
273
337
 
274
338
  # Usage: __rvm_with_env 'env-name' 'command'
275
339
  __rvm_with_env() {
276
- local environment_id="$1" command="$2"
277
- ( rvm use "$environment_id" ; eval "$command" )
340
+ local environment_id command
341
+
342
+ environment_id="$1"
343
+ command="$2"
344
+
345
+ (
346
+ rvm use "$environment_id"
347
+ eval "$command"
348
+ )
278
349
  }
279
350
 
280
351
  # Returns the first 1.8.7-compatible (partly) ruby for use
281
352
  # with things like rbx etc which require a ruby be installed.
282
353
  __rvm_18_compat_ruby() {
283
- local rubies=""
284
- for ruby_name in $(\ls "$rvm_rubies_path"); do
285
- if [[ ! -L "$rvm_rubies_path/$ruby_name" ]] && [[ "$ruby_name" =~ 1.8. || "$ruby_name" =~ rbx- || "$ruby_name" =~ ree- ]] ; then
286
- rubies="$rubies $ruby_name"
354
+ local rubies ruby_name
355
+
356
+ rubies=($( cd "$rvm_rubies_path" ; find * -type d -maxdepth 0 ))
357
+
358
+ for ruby_name in "${rubies[@]}"; do
359
+
360
+ if [[ ! -L "$rvm_rubies_path/$ruby_name" ]] ; then
361
+
362
+ case $ruby_name in
363
+ *1.8.*|rbx-*|ree-*) rubies="$rubies $ruby_name" ;;
364
+ esac
287
365
  fi
288
- done; unset ruby_name
366
+ done
289
367
 
290
- echo "$rubies" | sed 's/^ //' | \tr ' ' '\n' | sort | tail -n1
368
+ echo $rubies | \tr ' ' '\n' | \sort | \tail -n1
291
369
 
292
370
  return 0
293
371
  }
294
372
 
295
373
  __rvm_ensure_has_18_compat_ruby() {
374
+
296
375
  if [[ -z "$(__rvm_18_compat_ruby)" ]]; then
297
376
  # TODO: install currently doesn't return the correct status.
298
377
  local compat_result=0
378
+
299
379
  if ! ( "$rvm_scripts_path/manage" install 1.8.7 ); then
300
- "$rvm_scripts_path/log" "fail" "To proceed rvm requires a 1.8-compatible ruby is installed. We attempted to install 1.8.7 automatically but it failed."
301
- "$rvm_scripts_path/log" "fail" "Please install it manually (or a compatible alternative) to proceed."
380
+
381
+ "$rvm_scripts_path/log" "fail" \
382
+ "To proceed rvm requires a 1.8-compatible ruby is installed. We attempted to install 1.8.7 automatically but it failed.\
383
+ Please install it manually (or a compatible alternative) to proceed."
384
+
302
385
  compat_result=1
303
- fi ; unset original_ruby
304
- # TODO: Why are we unsetting original_ruby here
386
+
387
+ fi
388
+ # unset original_ruby
389
+ # Question: Why *were* we unsetting original_ruby here
305
390
  return $compat_result
306
391
  fi
307
392
 
@@ -311,6 +396,7 @@ __rvm_ensure_has_18_compat_ruby() {
311
396
  # Cleans up temp folders for a given prefix,
312
397
  # typically the current process id.
313
398
  __rvm_cleanup_temp_for() {
399
+
314
400
  local prefix="$1"
315
401
 
316
402
  [[ -z "$prefix" ]] && return 1
@@ -524,8 +610,10 @@ __rvm_update_rvm() {
524
610
  (
525
611
  builtin cd "$rvm_src_path"
526
612
  if [[ ${rvm_head_flag:-0} -eq 1 ]] ; then
613
+
527
614
  if [[ -d "$rvm_src_path/rvm/.git" ]] ; then
528
615
  builtin cd "$rvm_src_path/rvm/" && git pull origin master && ./scripts/install
616
+
529
617
  else
530
618
  builtin cd "$rvm_src_path" && ( git clone --depth 1 git://github.com/wayneeseguin/rvm.git || git clone http://github.com/wayneeseguin/rvm.git ) && builtin cd rvm/ && ./scripts/install
531
619
  fi
@@ -620,12 +708,12 @@ __rvm_inspect() {
620
708
 
621
709
  "$rvm_scripts_path/log" "info" "$actual_file:"
622
710
 
623
- if [[ $rvm_shebang_flag -eq 1 ]] ; then head -n 1 < "$actual_file" ; fi
624
- if [[ $rvm_env_flag -eq 1 ]] ; then awk '/ENV/' < "$actual_file" ; fi
625
- if [[ $rvm_path_flag -eq 1 ]] ; then awk '/PATH/' < "$actual_file" ; fi
626
- if [[ $rvm_head_flag -eq 1 ]] ; then head -n 5 < "$actual_file" ; fi
627
- if [[ $rvm_tail_flag -eq 1 ]] ; then tail -n 5 < "$actual_file" ; fi
628
- if [[ $rvm_all_flag -eq 1 ]] ; then cat $actual_file ; fi
711
+ if [[ $rvm_shebang_flag -eq 1 ]] ; then \head -n 1 < "$actual_file" ; fi
712
+ if [[ $rvm_env_flag -eq 1 ]] ; then \awk '/ENV/' < "$actual_file" ; fi
713
+ if [[ $rvm_path_flag -eq 1 ]] ; then \awk '/PATH/' < "$actual_file" ; fi
714
+ if [[ $rvm_head_flag -eq 1 ]] ; then \head -n 5 < "$actual_file" ; fi
715
+ if [[ $rvm_tail_flag -eq 1 ]] ; then \tail -n 5 < "$actual_file" ; fi
716
+ if [[ $rvm_all_flag -eq 1 ]] ; then \cat $actual_file ; fi
629
717
  done
630
718
 
631
719
  return 0
@@ -644,12 +732,12 @@ __rvm_make_flags() {
644
732
  elif [[ "$(sysctl -n hw.cpu64bit_capable)" = 1 || "$(sysctl -n hw.optional.x86_64)" = 1 ]] ; then
645
733
  # 64 bit capable
646
734
  if [[ "-arch x86_64" = "${rvm_archflags:-""}" ]] ; then
647
- rvm_ruby_configure_flags="${rvm_ruby_configure_flags} --build=x86_64-apple-darwin$(uname -r) --host=x86_64-apple-darwin$(uname -r)"
735
+ rvm_configure_flags="${rvm_configure_flags} --build=x86_64-apple-darwin$(uname -r) --host=x86_64-apple-darwin$(uname -r)"
648
736
  elif [[ "-arch i386" = "${rvm_archflags:-""}" ]] ; then
649
- rvm_ruby_configure_flags="${rvm_ruby_configure_flags} --build=i386-apple-darwin$(uname -r) --host=i386-apple-darwin$(uname -r)"
737
+ rvm_configure_flags="${rvm_configure_flags} --build=i386-apple-darwin$(uname -r) --host=i386-apple-darwin$(uname -r)"
650
738
  else
651
739
  rvm_archflags="-arch x86_64"
652
- rvm_ruby_configure_flags="${rvm_ruby_configure_flags} --build=x86_64-apple-darwin$(uname -r) --host=x86_64-apple-darwin$(uname -r)"
740
+ rvm_configure_flags="${rvm_configure_flags} --build=x86_64-apple-darwin$(uname -r) --host=x86_64-apple-darwin$(uname -r)"
653
741
  fi
654
742
  fi
655
743
 
@@ -657,7 +745,7 @@ __rvm_make_flags() {
657
745
  ARCHFLAGS="$rvm_archflags" ; export ARCHFLAGS
658
746
  # Use the latest sdk available.
659
747
  if [[ -z "${rvm_sdk:-""}" ]] ; then
660
- rvm_sdk="$(/usr/bin/basename -a /Developer/SDKs/* | awk '/^M/' | sort | tail -n 1)"
748
+ rvm_sdk="$(/usr/bin/basename -a /Developer/SDKs/* | awk '/^M/' | \sort | \tail -n 1)"
661
749
  fi
662
750
  CFLAGS="${CFLAGS:-"-isysroot /Developer/SDKs/$rvm_sdk $rvm_archflags"}" ; export CFLAGS
663
751
  LDFLAGS="${LDFLAGS:-"-Wl,-syslibroot /Developer/SDKs/$rvm_sdk $rvm_archflags"}" ; export LDFLAGS
@@ -883,7 +971,11 @@ __rvm_check_rvmrc_trustworthiness() {
883
971
  }
884
972
 
885
973
  __rvm_ask_to_trust() {
974
+
975
+ local trusted value
976
+
886
977
  [[ -n "$rvm_promptless" ]] && return 2
978
+
887
979
  printf "
888
980
  ============================================================
889
981
  RVM has encountered a not yet trusted .rvmrc file in the
@@ -899,22 +991,30 @@ $(cat $1)
899
991
  Do you wish to trust this .rvmrc from now on?
900
992
  ============================================================
901
993
  (y for yes, n for no)"
902
- local trusted=""
994
+
903
995
  # TODO: Eliminate infinite loop possibility.
904
996
  while [[ -z "$trusted" ]] ; do
997
+
905
998
  printf " > "
999
+
906
1000
  read -r response
1001
+
907
1002
  value="$(echo "$response" | tr '[[:upper:]]' '[[:lower:]]' | __rvm_strip)"
1003
+
908
1004
  if [[ "$response" = "y"* ]]; then
909
1005
  trusted=1
1006
+
910
1007
  elif [[ "$response" = "n"* ]]; then
911
1008
  trusted=0
912
1009
  fi
913
- done ; unset value
1010
+ done
1011
+
1012
+ if [[ ${trusted:-0} -gt 0 ]] ; then
914
1013
 
915
- if [[ "$trusted" == "1" ]] ; then
916
1014
  __rvm_trust_rvmrc "$1"
1015
+
917
1016
  return 0
1017
+
918
1018
  else
919
1019
  __rvm_untrust_rvmrc "$1"
920
1020
  return 1
@@ -930,17 +1030,27 @@ __rvm_project_rvmrc() {
930
1030
  cwd="${1:-"$PWD"}"
931
1031
 
932
1032
  while : ; do
1033
+
933
1034
  if [[ -z "$cwd" || "$HOME" = "$cwd" || "/" = "$cwd" ]] ; then
1035
+
934
1036
  if [[ -n "${rvm_rvmrc_cwd:-""}" ]] ; then
1037
+
935
1038
  if [[ ${rvm_project_rvmrc_default:-0} -eq 1 ]]; then
1039
+
936
1040
  __rvm_load_env_file "default"
1041
+
937
1042
  elif [[ -n "${rvm_previous_environment:-""}" ]] ; then
1043
+
938
1044
  __rvm_load_env_file "$rvm_previous_environment"
1045
+
939
1046
  fi
1047
+
940
1048
  unset rvm_rvmrc_cwd rvm_previous_environment
1049
+
941
1050
  fi
942
1051
  break
943
1052
  else
1053
+
944
1054
  if [[ -f "$cwd/.rvmrc" ]] ; then
945
1055
 
946
1056
  if [[ "${rvm_rvmrc_cwd:-""}" != "$cwd" ]] ; then
@@ -950,54 +1060,89 @@ __rvm_project_rvmrc() {
950
1060
  local rvm_trustworthiness_result="$?"
951
1061
 
952
1062
  if [[ "$rvm_trustworthiness_result" = 0 ]]; then
1063
+
953
1064
  rvm_previous_environment="$(__rvm_environment_identifier)"
1065
+
954
1066
  rvm_rvmrc_cwd="$cwd"
1067
+
955
1068
  source "$cwd/.rvmrc"
956
- return 0
957
1069
 
1070
+ return 0
958
1071
  else
959
1072
  return "$rvm_trustworthiness_result"
960
1073
  fi
961
1074
  fi
962
1075
  break
1076
+
963
1077
  else
964
1078
  cwd="$(dirname "$cwd")"
965
1079
  fi
966
1080
  fi
967
1081
  done
1082
+
968
1083
  return $?
969
1084
  }
970
1085
 
971
1086
  __rvm_record_install() {
1087
+
1088
+ local recorded_ruby_name rvm_install_record_file rvm_install_command
1089
+
972
1090
  [[ -z "$1" ]] && return
973
- local recorded_ruby_name="$($rvm_scripts_path/tools strings "$1")"
974
- local rvm_install_record_file="$rvm_config_path/installs"
975
- local rvm_install_command="$(echo "$recorded_ruby_name $rvm_install_arguments" | __rvm_strip)"
1091
+
1092
+ recorded_ruby_name="$($rvm_scripts_path/tools strings "$1")"
1093
+
1094
+ rvm_install_record_file="$rvm_config_path/installs"
1095
+
1096
+ rvm_install_command="$(echo "$recorded_ruby_name $rvm_install_arguments" | __rvm_strip)"
1097
+
976
1098
  \touch "$rvm_install_record_file"
1099
+
977
1100
  \rm -f "$rvm_install_record_file.tmp"
1101
+
978
1102
  \grep -v "^$recorded_ruby_name " < "$rvm_install_record_file" > "$rvm_install_record_file.tmp"
1103
+
979
1104
  echo "$rvm_install_command" >> "$rvm_install_record_file.tmp"
1105
+
980
1106
  \rm -f "$rvm_install_record_file"
1107
+
981
1108
  \mv "$rvm_install_record_file.tmp" "$rvm_install_record_file"
1109
+
1110
+ return 0
982
1111
  }
983
1112
 
984
1113
  __rvm_remove_install_record() {
985
- local recorded_ruby_name="$($rvm_scripts_path/tools strings "$1")"
986
- local rvm_install_record_file="$rvm_config_path/installs"
1114
+ local recorded_ruby_name rvm_install_record_file
1115
+
1116
+ recorded_ruby_name="$($rvm_scripts_path/tools strings "$1")"
1117
+
1118
+ rvm_install_record_file="$rvm_config_path/installs"
1119
+
987
1120
  if [[ -s "$rvm_install_record_file" ]]; then
1121
+
988
1122
  \mv "$rvm_install_record_file" "$rvm_install_record_file.tmp"
1123
+
989
1124
  \grep -v "^$recorded_ruby_name " < "$rvm_install_record_file.tmp" > "$rvm_install_record_file"
1125
+
990
1126
  \rm -f "$rvm_install_record_file.tmp"
991
1127
  fi
1128
+
992
1129
  return 0
993
1130
  }
994
1131
 
995
1132
  __rvm_recorded_install_command() {
996
- local recorded_ruby_name="$($rvm_scripts_path/tools strings "$1" | awk -F"$rvm_gemset_separator" '{print $1}')"
1133
+
1134
+ local recorded_ruby_name recorded_ruby_match
1135
+
1136
+ recorded_ruby_name="$($rvm_scripts_path/tools strings "$1" | awk -F"$rvm_gemset_separator" '{print $1}')"
1137
+
997
1138
  [[ -z "$recorded_ruby_name" ]] && return 1
998
- local recorded_ruby_match="^$recorded_ruby_name "
1139
+
1140
+ recorded_ruby_match="^$recorded_ruby_name "
1141
+
999
1142
  if [[ -s "$rvm_config_path/installs" ]] && \grep -q "$recorded_ruby_match" "$rvm_config_path/installs" ; then
1143
+
1000
1144
  \grep "$recorded_ruby_match" < "$rvm_config_path/installs" | head -n1
1145
+
1001
1146
  else
1002
1147
  return 1
1003
1148
  fi
@@ -1005,41 +1150,47 @@ __rvm_recorded_install_command() {
1005
1150
  }
1006
1151
 
1007
1152
  __rvm_environment_identifier() {
1008
- local path
1009
- local string
1153
+
1154
+ local path string
1155
+
1010
1156
  path="${GEM_HOME:-""}"
1157
+
1011
1158
  string="${path//*gems\//}"
1012
1159
  string="${string//\/*/}"
1160
+
1013
1161
  echo "${string:-system}"
1162
+
1014
1163
  return $?
1015
1164
  }
1016
1165
 
1017
1166
  __rvm_expand_ruby_string() {
1167
+
1018
1168
  local string="$1"
1019
1169
 
1020
1170
  if [[ -z "$string" || "$string" = "all" ]]; then
1021
- "$rvm_scripts_path/list" strings | tr ' ' "\n" | __rvm_strip
1171
+ "$rvm_scripts_path/list" strings | tr ' ' "\n"
1022
1172
 
1023
1173
  elif [[ "$string" = "all-gemsets" ]]; then
1024
- "$rvm_scripts_path/list" gemsets strings | __rvm_strip
1174
+ "$rvm_scripts_path/list" gemsets strings
1025
1175
 
1026
1176
  elif [[ "$string" = "default-with-rvmrc" || "$string" = "rvmrc" ]]; then
1027
1177
  "$rvm_scripts_path/tools" path-identifier "$PWD"
1028
1178
 
1029
1179
  elif [[ "$string" == "all-rubies" || "$string" = "rubies" ]]; then
1030
- "$rvm_scripts_path/list" rubies strings | __rvm_strip
1180
+ "$rvm_scripts_path/list" rubies strings
1031
1181
 
1032
1182
  elif [[ "$string" == "current-ruby" || "$string" = "gemsets" ]]; then
1033
1183
  local current_ruby="$(__rvm_environment_identifier | awk -F"$rvm_gemset_separator" '{print $string}')"
1034
- rvm_silence_logging=1 "$rvm_scripts_path/gemsets" list | sed "s/^/$current_ruby$rvm_gemset_separator/" | __rvm_strip
1184
+ rvm_silence_logging=1 "$rvm_scripts_path/gemsets" list | sed "s/^/$current_ruby$rvm_gemset_separator/"
1035
1185
 
1036
1186
  elif [[ "$string" = "current" ]]; then
1037
1187
  __rvm_environment_identifier
1038
1188
 
1039
1189
  elif [[ "$string" = "aliases" ]]; then
1040
- awk -F= '{print $string}' < "$rvm_config_path/alias" | __rvm_strip
1190
+ awk -F= '{print $string}' < "$rvm_config_path/alias"
1041
1191
 
1042
1192
  else
1193
+
1043
1194
  echo "$string" | tr "," "\n" | __rvm_strip
1044
1195
  fi
1045
1196
  return $?