rvm 1.0.1 → 1.0.2

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.
@@ -17,15 +17,13 @@ tools_path_identifier() {
17
17
  echo "Usage: rvm tools path-identifier 'path-to-heck'"
18
18
  return 1
19
19
  fi
20
- # Change to the directory. Do in subshell to keep the env correct.
21
- (
22
- source "$rvm_scripts_path/rvm"
23
- builtin cd "$1"
24
- rvm_promptless=1 __rvm_project_rvmrc
25
- rvmrc_result="$?"
26
- __rvm_environment_identifier
27
- exit $rvmrc_result
28
- )
20
+
21
+ source "$rvm_scripts_path/rvm"
22
+ builtin cd "$1"
23
+ rvm_promptless=1 __rvm_project_rvmrc
24
+ rvmrc_result="$?"
25
+ __rvm_environment_identifier
26
+ exit $rvmrc_result
29
27
  }
30
28
 
31
29
  tools_strings() {
@@ -76,7 +76,7 @@ if [[ -z "$rvm_path" ]] ; then rvm_path="${rvm_prefix}rvm" ; fi
76
76
 
77
77
  source scripts/initialize
78
78
 
79
- if \grep -q 'scripts/rvm' $HOME/.bash* 2>/dev/null || \grep -q 'scripts/rvm' $HOME/.zsh* 2>/dev/null; then
79
+ if \grep -q 'scripts/rvm' "$HOME"/.bash* 2>/dev/null || \grep -q 'scripts/rvm' "$HOME"/.zsh* 2>/dev/null; then
80
80
  if [[ -d "$rvm_path" ]] && [[ -s "${rvm_path}/scripts/rvm" ]] ; then
81
81
  export upgrade_flag=1
82
82
  else
@@ -93,7 +93,7 @@ __rvm_initialize
93
93
  #
94
94
  item="$(tput setaf 2)* $(tput sgr0)"
95
95
  question="\n$(tput setaf 2)<?>$(tput sgr0)"
96
- cwd=$PWD
96
+ cwd="$PWD"
97
97
  source_path="${source_path:-$cwd}"
98
98
  rvm_archives_path="${rvm_archives_path:-"$rvm_path/archives"}"
99
99
  rvm_src_path="${rvm_src_path:-"$rvm_path/src"}"
@@ -151,7 +151,7 @@ done ; unset dir_name
151
151
  spinner
152
152
  if [[ ! -s "$rvm_config_path/user" ]] ; then
153
153
  \mkdir -p "$rvm_config_path/"
154
- echo '# Users settings file, overrides db file settings and persists across installs.' >> $rvm_config_path/user
154
+ echo '# Users settings file, overrides db file settings and persists across installs.' >> "$rvm_config_path/user"
155
155
  fi
156
156
 
157
157
  scripts=("monitor" "match" "log" "install" "color" "db" "fetch" "log" "set" "package")
@@ -170,7 +170,7 @@ for file in rvm-prompt rvm rvmsudo rvm-shell rvm-auto-ruby ; do
170
170
  \cp -f "$source_path/binscripts/$file" $rvm_bin_path/
171
171
  done
172
172
  spinner
173
- chmod +x $rvm_bin_path/*
173
+ chmod +x "$rvm_bin_path"/*
174
174
 
175
175
  #
176
176
  # RC Files
@@ -179,17 +179,17 @@ spinner
179
179
  if [[ -n "$rvm_auto_flag" ]] ; then
180
180
  printf "Checking rc files... ($rvm_rc_files)"
181
181
  if [[ "$rvm_loaded_flag" != "1" ]] ; then
182
- for rcfile in $(echo $rvm_rc_files) ; do
182
+ for rcfile in $(printf $rvm_rc_files) ; do
183
183
  if [[ ! -f $rcfile ]] ; then \touch $rcfile ; fi
184
184
  if [[ -s "$HOME/.profile" ]] ; then
185
185
  if ! \grep -q '.profile' "$rcfile" ; then
186
186
  echo " Adding 'if [[ -s \$HOME/.profile ]] ; then source \$HOME ; fi' to $rcfile."
187
- printf "\n# rvm-install added line:\nif [[ -s \$HOME/.profile ]] ; then source \$HOME/.profile ; fi\n" >> $rcfile
187
+ printf "\n# rvm-install added line:\nif [[ -s \$HOME/.profile ]] ; then source \$HOME/.profile ; fi\n" >> "$rcfile"
188
188
  fi
189
189
  fi
190
190
  if ! \grep -q "scripts\/rvm" "$rcfile" ; then
191
191
  echo " Adding 'if [[ -s $rvm_scripts_path/rvm ]] ; then source $rvm_scripts_path/rvm ; fi' to $rcfile."
192
- printf "\n# rvm-install added:\nif [[ -s $rvm_scripts_path/rvm ]] ; then source $rvm_scripts_path/rvm ; fi\n" >> $rcfile
192
+ printf "\n# rvm-install added:\nif [[ -s $rvm_scripts_path/rvm ]] ; then source $rvm_scripts_path/rvm ; fi\n" >> "$rcfile"
193
193
  fi
194
194
  done
195
195
  fi
@@ -254,26 +254,27 @@ done
254
254
  spinner
255
255
  printf "\r*" # Stop spinner.
256
256
 
257
- for gemset in $rvm_path/gems/*\%* ; do
257
+ for gemset in "$rvm_path"/gems/*\%* ; do
258
258
  new_path=${gemset/\%/${rvm_gemset_separator}}
259
259
  if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
260
- printf "\n Renaming $(basename $gemset) to $(basename $new_path) for new gemset separator."
261
- mv $gemset $new_path
260
+ printf "\n Renaming $(basename "$gemset") to $(basename "$new_path") for new gemset separator."
261
+ mv "$gemset" "$new_path"
262
262
  fi
263
263
  done
264
264
 
265
- for gemset in $rvm_path/gems/*\+* ; do
265
+ for gemset in "$rvm_path"/gems/*\+* ; do
266
266
  new_path=${gemset/\+/${rvm_gemset_separator}}
267
267
  if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
268
- printf "\n Renaming $(basename $gemset) to $(basename $new_path) for new gemset separator."
268
+ printf "\n Renaming $(basename "$gemset") to $(basename "$new_path") for new gemset separator."
269
269
  mv $gemset $new_path
270
270
  fi
271
271
  done
272
- for gemset in $rvm_path/gems/*\@ ; do
272
+
273
+ for gemset in "$rvm_path"/gems/*\@ ; do
273
274
  new_path=$(echo $gemset | sed -e 's#\@$##')
274
275
  if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
275
- printf "\n Fixing: $(basename $gemset) to $(basename $new_path) for new gemset separator."
276
- mv $gemset $new_path
276
+ printf "\n Fixing: $(basename "$gemset") to $(basename "$new_path") for new gemset separator."
277
+ mv "$gemset" "$new_path"
277
278
  fi
278
279
  done
279
280
 
@@ -281,18 +282,16 @@ done
281
282
  if [[ -s "$rvm_config_path/default" ]]; then
282
283
  original_version="$(basename "$(\grep GEM_HOME "$rvm_config_path/default" | awk -F"'" '{print $2}' | sed "s#\%#${rvm_gemset_separator}#")")"
283
284
  if [[ -n "$original_version" ]]; then
284
- $rvm_scripts_path/alias create default "$original_version" &> /dev/null
285
- fi
286
- unset original_version
285
+ "$rvm_scripts_path/alias" create default "$original_version" &> /dev/null
286
+ fi ; unset original_version
287
287
  \rm -rf "$rvm_config_path/default"
288
288
  fi
289
289
 
290
290
  #
291
291
  # End of gemset migration.
292
292
  #
293
-
294
293
  printf "\n Correct permissions for base binaries in $rvm_bin_path..."
295
- \mkdir -p $rvm_bin_path
294
+ \mkdir -p "$rvm_bin_path"
296
295
  for file in rvm rvmsudo rvm-shell rvm-auto-ruby; do
297
296
  [[ -s "$rvm_bin_path/$file" ]] && chmod +x "$rvm_bin_path/$file"
298
297
  done; unset file
@@ -17,12 +17,12 @@ confirm() {
17
17
  }
18
18
 
19
19
  die_with_error() {
20
- $rvm_scripts_path/log "fail" "$1"
20
+ "$rvm_scripts_path/log" "fail" "$1"
21
21
  exit "${2:-1}"
22
22
  }
23
23
 
24
24
  expand_ruby_name() {
25
- $rvm_scripts_path/tools strings "$1" | awk -F"$rvm_gemset_separator" '{print $1}'
25
+ "$rvm_scripts_path/tools" strings "$1" | awk -F"$rvm_gemset_separator" '{print $1}'
26
26
  }
27
27
 
28
28
  expand_existing_ruby() {
@@ -33,7 +33,7 @@ expand_existing_ruby() {
33
33
  echo "$ruby_name"
34
34
  return 0
35
35
  fi
36
- done < <($rvm_scripts_path/list strings | tr ' ' '\n' | sort -ur | \grep "^$prefix" | \grep -v '-head$' | head -n1)
36
+ done < <("$rvm_scripts_path/list" strings | tr ' ' '\n' | sort -ur | \grep "^$prefix" | \grep -v '-head$' | head -n1)
37
37
  return 1
38
38
  }
39
39
 
@@ -46,18 +46,18 @@ upgrade_ruby() {
46
46
  confirm "Are you sure you wish to upgrade from $expanded_source to $expanded_destination?" || die_with_error "Cancelling upgrade."
47
47
 
48
48
  if [[ ! -d "$rvm_rubies_path/$expanded_destination" ]]; then
49
- $rvm_scripts_path/log "info" "Installing new ruby $expanded_destination"
49
+ "$rvm_scripts_path/log" "info" "Installing new ruby $expanded_destination"
50
50
  $rvm_bin_path/rvm install "$expanded_destination"
51
51
  result="$?"
52
52
  [[ "$result" -gt 0 ]] && die_with_error "Unable to install ruby $expanded_destination. Please install it manually to continue." "$result"
53
53
  fi
54
54
 
55
- $rvm_scripts_path/log "info" "Migrating gems from $expanded_source to $expanded_destination"
56
- $rvm_scripts_path/migrate "$expanded_source" "$expanded_destination"
55
+ "$rvm_scripts_path/log" "info" "Migrating gems from $expanded_source to $expanded_destination"
56
+ "$rvm_scripts_path/migrate" "$expanded_source" "$expanded_destination"
57
57
  result="$?"
58
58
  [[ "$result" -gt 0 ]] && die_with_error "Error migrating gems." "$result"
59
59
 
60
- $rvm_scripts_path/log "info" "Upgrade complete!"
60
+ "$rvm_scripts_path/log" "info" "Upgrade complete!"
61
61
  }
62
62
 
63
63
  [[ -z "$1" ]] && usage
@@ -42,17 +42,17 @@ __rvm_teardown() {
42
42
  }
43
43
 
44
44
  __rvm_dump_environment() {
45
- local dump_environment_file="$(echo "$rvm_dump_environment_flag" | awk -F, '{print $1}')"
46
- local dump_environment_type="$(echo "$rvm_dump_environment_flag" | awk -F, '{print $2}')"
45
+ # Note: This assumes that there is a ','
46
+ local dump_environment_file="${rvm_dump_environment_flag/,*/}"
47
+ local dump_environment_type="${rvm_dump_environment_flag/*,/}"
47
48
  if [[ -n "$dump_environment_file" && -n "$dump_environment_type" ]]; then
48
49
  if [[ "$dump_environment_type" == "atheis"* ]]; then
49
50
  \rm -rf "$dump_environment_file" && ln -s /dev/null "$dump_environment_file" >/dev/null 2>&1
50
51
  else
51
- $rvm_scripts_path/environment-convertor "$dump_environment_type" "$(__rvm_environment_identifier)" > "$dump_environment_file"
52
+ "$rvm_scripts_path/environment-convertor" "$dump_environment_type" "$(__rvm_environment_identifier)" > "$dump_environment_file"
52
53
  [[ "$?" -gt 0 ]] && \rm -rf "$dump_environment_file"
53
54
  fi
54
- fi
55
- unset rvm_dump_environment_flag
55
+ fi ; unset rvm_dump_environment_flag
56
56
  }
57
57
 
58
58
  # Return a list of directories under a given base path.
@@ -113,7 +113,7 @@ __rvm_quote_args_with_shift() {
113
113
 
114
114
  __rvm_warn_on_rubyopt() {
115
115
  if [[ -n "$RUBYOPT" ]]; then
116
- $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."
116
+ "$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."
117
117
  return 1
118
118
  else
119
119
  return 0
@@ -148,20 +148,20 @@ __rvm_set_path_variable() {
148
148
  if [[ -d "$1" ]] ; then
149
149
  eval "${path_variable}=${1}"
150
150
  else
151
- $rvm_scripts_path/log "error" "'$1' is not a valid path."
151
+ "$rvm_scripts_path/log" "error" "'$1' is not a valid path."
152
152
  fi ; unset path_variable
153
153
  }
154
154
 
155
155
  # Clean all *duplicate* items out of the path. (keep first occurrence of each)
156
156
  __rvm_clean_path() {
157
- PATH=$(echo $PATH | \tr -s ':' '\n' | awk '!($0 in a){a[$0];print}' | \tr -s '\n' ':' | sed 's#:$##')
157
+ PATH="$(echo $PATH | \tr -s ':' '\n' | awk '!($0 in a){a[$0];print}' | \tr -s '\n' ':' | sed 's#:$##')"
158
158
  export PATH
159
159
  builtin hash -r
160
160
  }
161
161
 
162
162
  # Clean all rvm items out of the current working path.
163
163
  __rvm_remove_rvm_from_path() {
164
- PATH=$(echo $PATH | \tr -s ':' '\n' | \grep -v "rvm" | \tr -s '\n' ':' | sed 's#:$##')
164
+ PATH="$(echo $PATH | \tr -s ':' '\n' | \grep -v "$rvm_path" | \tr -s '\n' ':' | sed 's#:$##')"
165
165
  export PATH
166
166
  builtin hash -r
167
167
  }
@@ -170,9 +170,9 @@ __rvm_remove_rvm_from_path() {
170
170
  __rvm_run() {
171
171
  log_file_name="$1" ; command="$2" ; message="$3"
172
172
  if [[ -z "$rvm_ruby_log_path" ]] ; then rvm_ruby_log_path="$rvm_log_path" ; fi
173
- if [[ -n "$message" ]] ; then $rvm_scripts_path/log "info" "$message" ; fi
173
+ if [[ -n "$message" ]] ; then "$rvm_scripts_path/log" "info" "$message" ; fi
174
174
  if [[ -n "$rvm_debug_flag" ]] ; then
175
- $rvm_scripts_path/log "debug" "Executing: $command"
175
+ "$rvm_scripts_path/log" "debug" "Executing: $command"
176
176
  fi
177
177
 
178
178
  \mkdir -p "$(dirname "$rvm_ruby_log_path/$log_file_name.log")"
@@ -183,7 +183,7 @@ __rvm_run() {
183
183
  else
184
184
  eval "nice -n $rvm_niceness $command" >> $rvm_ruby_log_path/$log_file_name.log 2>> $rvm_ruby_log_path/$log_file_name.error.log
185
185
  fi
186
- if [[ $? -gt 0 ]] ; then $rvm_scripts_path/log "error" "Error running '$command', please check $rvm_ruby_log_path/$log_file_name*.log" ; __rvm_pushpop ; return 1 ; fi
186
+ if [[ $? -gt 0 ]] ; then "$rvm_scripts_path/log" "error" "Error running '$command', please check $rvm_ruby_log_path/$log_file_name*.log" ; __rvm_pushpop ; return 1 ; fi
187
187
  unset log_file command
188
188
  }
189
189
 
@@ -192,9 +192,9 @@ __rvm_run_with_env() {
192
192
  log_file_name="$1" ; env_name="$2" ; command="$3" ; message="$4"
193
193
  if [[ -z "$env_name" ]]; then env_name="$(__rvm_environment_identifier)"; fi
194
194
  if [[ -z "$rvm_ruby_log_path" ]] ; then rvm_ruby_log_path="$rvm_log_path" ; fi
195
- if [[ -n "$message" ]] ; then $rvm_scripts_path/log "info" "$message" ; fi
195
+ if [[ -n "$message" ]] ; then "$rvm_scripts_path/log" "info" "$message" ; fi
196
196
  if [[ -n "$rvm_debug_flag" ]] ; then
197
- $rvm_scripts_path/log "debug" "Executing: $command in environment "$env_name""
197
+ "$rvm_scripts_path/log" "debug" "Executing: $command in environment "$env_name""
198
198
  fi
199
199
 
200
200
  \mkdir -p "$(dirname "$rvm_ruby_log_path/$log_file_name.log")"
@@ -205,13 +205,13 @@ __rvm_run_with_env() {
205
205
  else
206
206
  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
207
207
  fi
208
- if [[ $? -gt 0 ]] ; then $rvm_scripts_path/log "error" "Error running '$command' under $env_name, please check $rvm_ruby_log_path/$log_file_name*.log" ; __rvm_pushpop ; return 1 ; fi
208
+ if [[ $? -gt 0 ]] ; then "$rvm_scripts_path/log" "error" "Error running '$command' under $env_name, please check $rvm_ruby_log_path/$log_file_name*.log" ; __rvm_pushpop ; return 1 ; fi
209
209
  unset log_file command env_name
210
210
  }
211
211
 
212
212
  # Unset both rvm variables as well as ruby-specific variables
213
213
  # Preserve gemset if 'rvm_sticky' is set (persist gemset unless clear is explicitely called).
214
- __rvm_cleanup_variables() {
214
+ __rvm_cleanse_variables() {
215
215
  __rvm_unset_ruby_variables
216
216
 
217
217
  if [[ "$rvm_sticky_flag" = "1" ]] ; then export rvm_gemset_name ; else unset rvm_gemset_name ; fi
@@ -230,8 +230,8 @@ __rvm_with_env() {
230
230
  rvm_env_command="$(echo "$2" | sed "s/rvm /rvm $rvm_env_args /")"
231
231
  # Subshells!
232
232
  (
233
- source $rvm_scripts_path/rvm
234
- rvm $rvm_env_args use $1 && eval "$rvm_env_command"
233
+ source "$rvm_scripts_path/rvm"
234
+ rvm "$rvm_env_args" use $1 && eval "$rvm_env_command"
235
235
  )
236
236
  unset rvm_env_args rvm_env_command
237
237
  }
@@ -240,8 +240,8 @@ __rvm_with_env() {
240
240
  # with things like rbx etc which require a ruby be installed.
241
241
  __rvm_18_compat_ruby() {
242
242
  rubies=""
243
- for ruby_name in $(\ls $rvm_rubies_path); do
244
- if [[ ! -L "$rvm_rubies_path/$ruby_name" ]] && $rvm_scripts_path/match "$ruby_name" '^(ruby-1.8.[[:digit:]]|rbx|ree)-'; then
243
+ for ruby_name in $(\ls "$rvm_rubies_path"); do
244
+ if [[ ! -L "$rvm_rubies_path/$ruby_name" ]] && [[ "$ruby_name" =~ 1.8. || "$ruby_name" =~ rbx- || "$ruby_name" =~ ree- ]] ; then
245
245
  rubies="$rubies $ruby_name"
246
246
  fi
247
247
  done; unset ruby_name
@@ -253,20 +253,18 @@ __rvm_ensure_has_18_compat_ruby() {
253
253
  if [[ -z "$(__rvm_18_compat_ruby)" ]]; then
254
254
  # TODO: install currently doesn't return the correct status.
255
255
  local compat_result=0
256
- if ! ( $rvm_scripts_path/manage install 1.8.7 ); then
257
- $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."
258
- $rvm_scripts_path/log "fail" "Please install it manually (or a compatible alternative) to proceed."
256
+ if ! ( "$rvm_scripts_path/manage" install 1.8.7 ); then
257
+ "$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."
258
+ "$rvm_scripts_path/log" "fail" "Please install it manually (or a compatible alternative) to proceed."
259
259
  compat_result=1
260
- fi
261
- unset original_ruby
260
+ fi ; unset original_ruby
262
261
  return $compat_result
263
262
  fi
264
263
  }
265
264
 
266
265
  __rvm_inherit_trace_flag() {
267
266
  if [[ -n "$rvm_trace_flag" ]]; then
268
- set -x
269
- export rvm_trace_flag
267
+ set -x ; export rvm_trace_flag
270
268
  fi
271
269
  }
272
270
 
@@ -276,8 +274,7 @@ __rvm_cleanup_temp_for() {
276
274
  [[ -z "$1" ]] && return 1
277
275
  if [[ -d "$rvm_tmp_path/" ]]; then
278
276
  \rm -rf "$rvm_tmp_path/$1"* >/dev/null 2>&1
279
- fi
280
- exit
277
+ fi ; exit
281
278
  }
282
279
 
283
280
  __rvm_cleanup_temp_on_exit() {
@@ -290,7 +287,7 @@ __rvm_set_rvmrc() {
290
287
 
291
288
  if [[ -s .rvmrc ]] ; then
292
289
  mv .rvmrc .rvmrc.$(date +%m.%d.%Y-%H:%M:%S)
293
- $rvm_scripts_path/log "warning" ".rvmrc is not empty, moving aside to preserve."
290
+ "$rvm_scripts_path/log" "warning" ".rvmrc is not empty, moving aside to preserve."
294
291
  fi
295
292
 
296
293
  local identifier=$(__rvm_environment_identifier)
@@ -299,16 +296,15 @@ __rvm_set_rvmrc() {
299
296
 
300
297
  unset flags
301
298
  else
302
- $rvm_scripts_path/log "error" ".rvmrc cannot be set in your home directory. \n The home .rvmrc is for global rvm settings only."
299
+ "$rvm_scripts_path/log" "error" ".rvmrc cannot be set in your home directory. \n The home .rvmrc is for global rvm settings only."
303
300
  fi
304
-
305
301
  }
306
302
  __rvm_load_rvmrc() {
307
303
  [[ -z "$rvm_ignore_rvmrc" ]] && return
308
304
  for rvmrc in /etc/rvmrc $HOME/.rvmrc ; do
309
305
  if [[ -f "$rvmrc" ]] ; then
310
306
  if \grep -q '^\s*rvm .*$' $rvmrc ; then
311
- $rvm_scripts_path/log "error" "$rvmrc is for rvm settings only.\nrvm CLI may NOT be called from within $rvmrc. \nSkipping the loading of $rvmrc"
307
+ "$rvm_scripts_path/log" "error" "$rvmrc is for rvm settings only.\nrvm CLI may NOT be called from within $rvmrc. \nSkipping the loading of $rvmrc"
312
308
  return 1
313
309
  else
314
310
  source "$rvmrc"
@@ -332,7 +328,7 @@ __rvm_benchmark() {
332
328
  old_rvm_ruby_string=$rvm_ruby_string
333
329
  unset rvm_ruby_string
334
330
  export rvm_ruby_strings
335
- $rvm_scripts_path/set $rvm_action $rvm_ruby_args
331
+ "$rvm_scripts_path/set" "$rvm_action" $rvm_ruby_args
336
332
  result=$?
337
333
  # Restore the state pre-sets.
338
334
  [[ -n "$old_rvm_ruby_string" ]] && rvm_ruby_string=$old_rvm_ruby_string
@@ -341,25 +337,25 @@ __rvm_benchmark() {
341
337
 
342
338
  # Loop over the currently installed rubies and refresh their binscripts.
343
339
  __rvm_bin_scripts() {
344
- for rvm_ruby_binary in $rvm_rubies_path/*/bin/ruby ; do
345
- if [[ -x "$rvm_ruby_binary" ]] ; then
346
- rvm_ruby_string=$(dirname "$rvm_ruby_binary" | xargs dirname | xargs basename)
347
- __rvm_select
348
- __rvm_bin_script
349
- fi
340
+ for rvm_ruby_binary in "$rvm_rubies_path"/*/bin/ruby ; do
341
+ if [[ -x "$rvm_ruby_binary" ]] ; then
342
+ rvm_ruby_string=$(dirname "$rvm_ruby_binary" | xargs dirname | xargs basename)
343
+ __rvm_select
344
+ __rvm_bin_script
345
+ fi
350
346
  done
351
347
  }
352
348
 
353
349
  # Write the bin/ wrapper script for currently selected ruby.
354
350
  # TODO: Adjust binscript to be able to handle all rubies not just the standard interpreteres.
355
351
  __rvm_bin_script() {
356
- $rvm_scripts_path/wrapper "$rvm_ruby_string"
352
+ "$rvm_scripts_path/wrapper" "$rvm_ruby_string"
357
353
  }
358
354
 
359
355
  # Add bin path if not present
360
356
  __rvm_conditionally_add_bin_path() {
361
- if echo "$PATH" | \tr ':' ' ' | \grep -vqF "$rvm_bin_path " ; then
362
- PATH="$rvm_bin_path:$PATH"
357
+ if echo "${PATH//:/ }" | \grep -vqF "$rvm_bin_path " ; then
358
+ PATH="${rvm_bin_path}:$PATH"
363
359
  builtin hash -r
364
360
  fi
365
361
  }
@@ -386,7 +382,7 @@ __rvm_reset() {
386
382
  __rvm_unset_ruby_variables
387
383
 
388
384
  for system_config in system_ruby system_gem_path system_user_gem_path ; do
389
- $rvm_scripts_path/db "$rvm_config_path/user" "$system_config" "delete"
385
+ "$rvm_scripts_path/db" "$rvm_config_path/user" "$system_config" "delete"
390
386
  done ; unset system_config variable
391
387
 
392
388
  \rm -f $rvm_bin_path/ruby $rvm_bin_path/gem $rvm_bin_path/rake $rvm_bin_path/irb $rvm_bin_path/default*
@@ -395,23 +391,23 @@ __rvm_reset() {
395
391
  # Implode removes the entire rvm installation under $rvm_path.
396
392
  __rvm_implode() {
397
393
  while : ; do
398
- $rvm_scripts_path/log "warn" "Are you SURE you wish for rvm to implode? This will remove $rvm_path ? (type 'yes' or 'no')"
394
+ "$rvm_scripts_path/log" "warn" "Are you SURE you wish for rvm to implode? This will remove $rvm_path ? (type 'yes' or 'no')"
399
395
  read response
400
396
  if [[ "yes" = "$response" ]] ; then
401
397
  if [[ "/" = "$rvm_path" ]] ; then
402
- $rvm_scripts_path/log "error" "remove '/' ?!... NO!"
398
+ "$rvm_scripts_path/log" "error" "remove '/' ?!... Ni!"
403
399
  else
404
400
  if [[ -d "$rvm_path" ]] ; then
405
- $rvm_scripts_path/log "info" "Hai! Removing $rvm_path"
406
- \rm -rf $rvm_path/
401
+ "$rvm_scripts_path/log" "info" "Hai! Removing $rvm_path"
402
+ \rm -rf "$rvm_path/"
407
403
  echo "$rvm_path has been removed."
408
404
  else
409
- $rvm_scripts_path/log "info" "It appears that $rvm_path is already non existant."
405
+ "$rvm_scripts_path/log" "info" "It appears that $rvm_path is already non existant."
410
406
  fi
411
407
  fi
412
408
  break
413
409
  elif [[ "no" = "$response" ]] ; then
414
- $rvm_scripts_path/log "info" "Cancelling implosion, no harm done :)"
410
+ "$rvm_scripts_path/log" "info" "Cancelling implosion, no harm done :)"
415
411
  break
416
412
  fi
417
413
  done
@@ -421,7 +417,7 @@ __rvm_implode() {
421
417
  __rvm_source_dir() {
422
418
  if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
423
419
  if [[ -z "$rvm_ruby_src_path" ]] ; then
424
- $rvm_scripts_path/log "fail" "No source directory exists for the default implementation."
420
+ "$rvm_scripts_path/log" "fail" "No source directory exists for the default implementation."
425
421
  else
426
422
  echo "$rvm_ruby_src_path"
427
423
  fi
@@ -449,7 +445,7 @@ __rvm_update() {
449
445
  fi
450
446
  [[ -n "$rvm_bin_flag" ]] && __rvm_bin_scripts
451
447
  # Update to the latest rubygems.
452
- [[ -n "$rvm_rubygems_flag" ]] && $rvm_scripts_path/rubygems current
448
+ [[ -n "$rvm_rubygems_flag" ]] && "$rvm_scripts_path/rubygems" current
453
449
 
454
450
  unset rvm_update_flag rvm_action rvm_self_flag rvm_ruby_revision rvm_bin_flag rvm_rubygems_flag
455
451
  __rvm_pushpop
@@ -472,7 +468,7 @@ __rvm_update_rvm() {
472
468
 
473
469
  __rvm_run "fetch" "$rvm_scripts_path/fetch 'http://rvm.beginrescueend.com/releases/rvm-${stable_version}.tar.gz'" "fetching rvm-${stable_version}.tar.gz"
474
470
 
475
- __rvm_run "extract" "gunzip \"$rvm_archives_path/rvm-${stable_version}.tar.gz\" | tar xf - -C $rvm_src_path" "Extracting rvm-${stable_version}.tar.gz ..."
471
+ __rvm_run "extract" "gunzip < \"$rvm_archives_path/rvm-${stable_version}.tar.gz\" | tar xf - -C $rvm_src_path" "Extracting rvm-${stable_version}.tar.gz ..."
476
472
 
477
473
  __rvm_run "install" "builtin cd $rvm_src_path/rvm-${stable_version}/ ; ./install" "Installing rvm-${stable_version}..."
478
474
  fi
@@ -482,14 +478,14 @@ __rvm_update_rvm() {
482
478
  }
483
479
 
484
480
  __rvm_reboot() {
485
- $rvm_scripts_path/log "warn" "Do you wish to reboot rvm? ('yes', or 'no')"
481
+ "$rvm_scripts_path/log" "warn" "Do you wish to reboot rvm? ('yes', or 'no')"
486
482
  read response
487
483
  if [[ "yes" = "$response" ]] ; then
488
484
  builtin cd $rvm_path
489
485
  __rvm_reset
490
- mv $rvm_path/archives ~/.archives
486
+ mv "$rvm_path/archives" "$HOME/.archives"
491
487
  if [[ "/" = "$rvm_path" ]] ; then
492
- $rvm_scripts_path/log "error" "remove '/' ?!... NO!"
488
+ "$rvm_scripts_path/log" "error" "remove '/' ?!... NO!"
493
489
  else
494
490
  if [[ -d "$rvm_path" ]] ; then \rm -rf "$rvm_path/" ; fi
495
491
  fi
@@ -497,14 +493,14 @@ __rvm_reboot() {
497
493
  __rvm_update_rvm
498
494
  source $rvm_path/scripts/rvm
499
495
  else
500
- $rvm_scripts_path/log "info" "Carry on then..."
496
+ "$rvm_scripts_path/log" "info" "Carry on then..."
501
497
  fi ; unset response
502
498
  }
503
499
 
504
500
  # Create the irbrc for the currently selected ruby installation.
505
501
  __rvm_irbrc() {
506
502
  if [[ -d "$rvm_ruby_home" ]] && [[ ! -s "$rvm_ruby_irbrc" ]] ; then
507
- \cp $rvm_scripts_path/irbrc $rvm_ruby_irbrc
503
+ \cp "$rvm_scripts_path/irbrc" "$rvm_ruby_irbrc"
508
504
  fi
509
505
  }
510
506
 
@@ -540,7 +536,7 @@ __rvm_state() {
540
536
  __rvm_inspect() {
541
537
  for binary in $rvm_ruby_args ; do
542
538
  actual_file="$(command -v $binary)"
543
- $rvm_scripts_path/log "info" "$actual_file:"
539
+ "$rvm_scripts_path/log" "info" "$actual_file:"
544
540
  if [[ -n "$rvm_shebang_flag" ]] ; then head -n 1 < "$actual_file" ; fi
545
541
  if [[ -n "$rvm_env_flag" ]] ; then awk '/ENV/' < "$actual_file" ; fi
546
542
  if [[ -n "$rvm_path_flag" ]] ; then awk '/PATH/' < "$actual_file" ; fi
@@ -600,18 +596,18 @@ __rvm_become() {
600
596
 
601
597
  __rvm_ensure_has_environment_files() {
602
598
  local environment_identifier="$(__rvm_environment_identifier)"
603
- file_name="${rvm_environments_path}/$environment_identifier"
599
+ local file_name="${rvm_environments_path}/$environment_identifier"
604
600
 
605
601
  if [[ ! -s "$file_name" ]] ; then
606
602
  \mkdir -p "${rvm_environments_path}"
607
- echo "export PATH=\"${rvm_ruby_gem_home}/bin:${rvm_ruby_global_gems_path}/bin:${rvm_ruby_home}/bin:${rvm_bin_path}:\$PATH\"" > $file_name
603
+ echo "export PATH=\"${rvm_ruby_gem_home}/bin:${rvm_ruby_global_gems_path}/bin:${rvm_ruby_home}/bin:${rvm_bin_path}:\$PATH\"" > "$file_name"
608
604
  for variable in RUBY_VERSION GEM_HOME GEM_PATH BUNDLE_PATH MY_RUBY_HOME IRBRC rvm_ruby_string rvm_gemset_name MAGLEV_HOME ; do
609
605
  eval "export $variable"
610
- eval value=\$${variable}
606
+ eval "value=\$${variable}"
611
607
  if [[ -n "$value" ]] ; then
612
- printf "${variable}='$value'\nexport ${variable}\n" >> $file_name
608
+ printf "${variable}='$value'\nexport ${variable}\n" >> "$file_name"
613
609
  else
614
- printf "unset ${variable}\n" >> $file_name
610
+ printf "unset ${variable}\n" >> "$file_name"
615
611
  fi
616
612
  done ; unset variable value
617
613
  fi ; unset file_name
@@ -624,7 +620,7 @@ __rvm_ensure_has_environment_files() {
624
620
  directory_name="$rvm_wrappers_path/$wrapper_identifier"
625
621
  if [[ ! -L "$directory_name" && ! -d "$directory_name" ]]; then
626
622
  \mkdir -p "$directory_name"
627
- $rvm_scripts_path/wrapper "$wrapper_identifier" &> /dev/null
623
+ "$rvm_scripts_path/wrapper" "$wrapper_identifier" &> /dev/null
628
624
  fi
629
625
  unset rvm_creating_default_wrappers directory_name
630
626
  done; unset wrapper_identifier
@@ -637,7 +633,7 @@ __rvm_strip() {
637
633
  }
638
634
 
639
635
  __rvm_using_gemset_globalcache() {
640
- $rvm_scripts_path/db "$rvm_config_path/user" "use_gemset_globalcache" | \grep -q '^true$'
636
+ "$rvm_scripts_path/db" "$rvm_config_path/user" "use_gemset_globalcache" | \grep -q '^true$'
641
637
  }
642
638
 
643
639
  __rvm_current_gemcache_dir() {
@@ -656,7 +652,7 @@ __rvm_ultimate_question() {
656
652
  printf "\nI do not know the Ultimate Question, "
657
653
  printf "\nhowever I can help you build a more "
658
654
  printf "\npowerful Ruby which can compute the "
659
- printf "\nUltimate Question."
655
+ printf "\nUltimate Question.\n"
660
656
  }
661
657
 
662
658
  __rvm_load_env_file() {
@@ -684,24 +680,24 @@ __rvm_rvmrc_key() {
684
680
 
685
681
  __rvm_reset_rvmrc_trust() {
686
682
  touch "$rvm_config_path/rvmrcs"
687
- $rvm_scripts_path/db "$rvm_config_path/rvmrcs" "$(__rvm_rvmrc_key "$1")" "delete" >/dev/null 2>&1
683
+ "$rvm_scripts_path/db" "$rvm_config_path/rvmrcs" "$(__rvm_rvmrc_key "$1")" "delete" >/dev/null 2>&1
688
684
  }
689
685
 
690
686
  __rvm_trust_rvmrc() {
691
687
  touch "$rvm_config_path/rvmrcs"
692
688
  __rvm_reset_rvmrc_trust "$1"
693
- $rvm_scripts_path/db "$rvm_config_path/rvmrcs" "$(__rvm_rvmrc_key "$1")" "1" >/dev/null 2>&1
689
+ "$rvm_scripts_path/db" "$rvm_config_path/rvmrcs" "$(__rvm_rvmrc_key "$1")" "1" >/dev/null 2>&1
694
690
  }
695
691
 
696
692
  __rvm_untrust_rvmrc() {
697
693
  touch "$rvm_config_path/rvmrcs"
698
694
  __rvm_reset_rvmrc_trust "$1"
699
- $rvm_scripts_path/db "$rvm_config_path/rvmrcs" "$(__rvm_rvmrc_key "$1")" "0" >/dev/null 2>&1
695
+ "$rvm_scripts_path/db" "$rvm_config_path/rvmrcs" "$(__rvm_rvmrc_key "$1")" "0" >/dev/null 2>&1
700
696
  }
701
697
 
702
698
  __rvm_rvmrc_stored_trust() {
703
699
  touch "$rvm_config_path/rvmrcs"
704
- $rvm_scripts_path/db "$rvm_config_path/rvmrcs" "$(__rvm_rvmrc_key "$1")"
700
+ "$rvm_scripts_path/db" "$rvm_config_path/rvmrcs" "$(__rvm_rvmrc_key "$1")"
705
701
  }
706
702
 
707
703
  __rvm_rvmrc_tools() {
@@ -754,26 +750,33 @@ __rvm_check_rvmrc_trustworthiness() {
754
750
 
755
751
  __rvm_ask_to_trust() {
756
752
  [[ -n "$rvm_promptless" ]] && return 2
757
- echo "Changing into a directory with an untrusted .rvmrc"
758
- echo "Do you wish to trust the rvmrc in this directory? It contains:"
759
- echo "---"
760
- echo ""
761
- cat "$1"
762
- echo ""
763
- echo "---"
764
- echo "So, do you wish to trust it? (y for yes, n for no)"
753
+ printf "
754
+ ============================================================
755
+ RVM has encountered a new untrusted .rvmrc file containing:
756
+ ============================================================
757
+
758
+ $(cat $1)
759
+
760
+ ============================================================
761
+ Trusting an .rvmrc file means that whenever you cd into the
762
+ directory RVM will excecute this .rvmrc script in your shell
763
+
764
+ Do you wish to trust this .rvmrc from now on?
765
+ ============================================================
766
+ (y for yes, n for no)"
765
767
  local trusted=""
768
+ # TODO: Eliminate infinite loop possibility.
766
769
  while [[ -z "$trusted" ]] ; do
767
- printf ">> "
768
- read -r value
769
- value="$(echo "$value" | tr '[[:upper:]]' '[[:lower:]]' | __rvm_strip)"
770
- if [[ "$value" = "y"* ]]; then
770
+ printf " > "
771
+ read -r response
772
+ value="$(echo "$response" | tr '[[:upper:]]' '[[:lower:]]' | __rvm_strip)"
773
+ if [[ "$response" = "y"* ]]; then
771
774
  trusted=1
772
- elif [[ "$value" = "n"* ]]; then
775
+ elif [[ "$response" = "n"* ]]; then
773
776
  trusted=0
774
777
  fi
775
- done
776
- unset value
778
+ done ; unset value
779
+
777
780
  if [[ "$trusted" == "1" ]] ; then
778
781
  __rvm_trust_rvmrc "$1"
779
782
  return 0
@@ -857,26 +860,26 @@ __rvm_recorded_install_command() {
857
860
 
858
861
  __rvm_environment_identifier() {
859
862
  ruby_string="$(command -v ruby)"
863
+
860
864
  if [ -n "$ruby_string" ] && echo "$ruby_string" | \grep -q -F "$rvm_rubies_path"; then
861
865
  echo "$GEM_HOME" | xargs basename
862
866
  else
863
867
  echo "system"
864
- fi
865
- unset ruby_string
868
+ fi ; unset ruby_string
866
869
  }
867
870
 
868
871
  __rvm_expand_ruby_string() {
869
872
  if [[ -z "$1" || "$1" = "all" ]]; then
870
- $rvm_scripts_path/list strings | tr ' ' "\n" | __rvm_strip
873
+ "$rvm_scripts_path/list" strings | tr ' ' "\n" | __rvm_strip
871
874
  elif [[ "$1" = "all-gemsets" ]]; then
872
- $rvm_scripts_path/list gemsets strings | __rvm_strip
875
+ "$rvm_scripts_path/list" gemsets strings | __rvm_strip
873
876
  elif [[ "$1" = "default-with-rvmrc" || "$1" = "rvmrc" ]]; then
874
- $rvm_scripts_path/tools path-identifier "$PWD"
877
+ "$rvm_scripts_path/tools" path-identifier "$PWD"
875
878
  elif [[ "$1" == "all-rubies" || "$1" = "rubies" ]]; then
876
- $rvm_scripts_path/list rubies strings | __rvm_strip
879
+ "$rvm_scripts_path/list" rubies strings | __rvm_strip
877
880
  elif [[ "$1" == "current-ruby" || "$1" = "gemsets" ]]; then
878
881
  local current_ruby="$(__rvm_environment_identifier | awk -F"$rvm_gemset_separator" '{print $1}')"
879
- rvm_silence_logging=1 $rvm_scripts_path/gemsets list | sed "s/^/$current_ruby$rvm_gemset_separator/" | __rvm_strip
882
+ rvm_silence_logging=1 "$rvm_scripts_path/gemsets" list | sed "s/^/$current_ruby$rvm_gemset_separator/" | __rvm_strip
880
883
  elif [[ "$1" = "current" ]]; then
881
884
  __rvm_environment_identifier
882
885
  elif [[ "$1" = "aliases" ]]; then