rvm 0.1.37 → 0.1.38

Sign up to get free protection for your applications and to get access to all the features.
data/install CHANGED
@@ -171,8 +171,8 @@ fi
171
171
  #
172
172
  spinner
173
173
  mkdir -p "$rvm_gemsets_path"
174
- for gemset_file in $(cd $install_source_path/gemsets ; find . -iname '*.gems' | sed 's/\.\///') ; do
175
- source_path="$install_source_path/gemsets"
174
+ for gemset_file in $(cd gemsets ; find . -iname '*.gems' | sed 's/\.\///') ; do
175
+ source_path="$(pwd)/gemsets"
176
176
  destination="$rvm_gemsets_path/$gemset_file"
177
177
  destination_path="$(dirname "$destination")"
178
178
  if [[ ! -s "$destination" ]] ; then
@@ -271,10 +271,10 @@ printf "\n ~ Wayne\n"
271
271
 
272
272
  if [[ "$upgrade_flag" -eq 1 ]] ; then
273
273
  printf "\n$(tput setaf 6)Upgrade Notes\n"
274
- printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
275
- printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
276
274
  printf "\n * 'rvm notes' tells you OS dependency packages for installing rubies."
275
+ printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
277
276
  printf "\n * 1.8.7 default patchlevel is p174, override ~/.rvm/config/db in ~/.rvm/config/user"
277
+ printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
278
278
  printf "\n$(tput sgr0)\n"
279
279
  printf "\nUpgrade of RVM in $rvm_path/ is complete.\n\n"
280
280
  else
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 1
4
- :patch: 37
4
+ :patch: 38
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rvm}
8
- s.version = "0.1.37"
8
+ s.version = "0.1.38"
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-06-02}
12
+ s.date = %q{2010-06-03}
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}
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
+ unset rvm_default_flag rvm_wrapper_name
4
+
3
5
  if [[ ! -z "$rvm_trace_flag" ]] ; then set -x ; export rvm_trace_flag ; fi
4
6
 
5
7
  trap "if [[ -d $rvm_tmp_path/ ]] && [[ -f $rvm_tmp_path/$$ ]] ; then rm -f $rvm_tmp_path/$$ > /dev/null 2>&1 ; fi ; exit" 0 1 2 3 15
@@ -41,7 +43,7 @@ create_alias() {
41
43
  if [[ -z "$rvm_alias" ]] ; then
42
44
  rvm_ruby_string="$rvm_environment_identifier"
43
45
  rvm_expanding_aliases=1
44
- __rvm_ruby_string >& /dev/null
46
+ __rvm_become
45
47
  unset rvm_expanding_aliases
46
48
  if [[ -z "$rvm_ruby_string" ]]; then
47
49
  $rvm_scripts_path/log "error" "unknown ruby string specified"
@@ -3,6 +3,9 @@
3
3
  __rvm_usage() { cat "${rvm_path:-$HOME/.rvm}/README" | ${PAGER:-less} ; }
4
4
 
5
5
  __rvm_parse_args() {
6
+
7
+ echo "$@" >> $HOME/.rvm_history
8
+
6
9
  if echo "$@" | grep -q 'trace' ; then echo "$@" ; __rvm_version ; fi
7
10
 
8
11
  while [[ $# -gt 0 ]] ; do
@@ -290,6 +293,13 @@ __rvm_parse_args() {
290
293
  rvm_wrapper_name="${rvm_token/--/}"
291
294
  ;;
292
295
 
296
+ --alias)
297
+ if [[ -n "$1" ]]; then
298
+ export rvm_ruby_aliases="$(echo "$1" | tr ',' ' ')"
299
+ shift
300
+ fi
301
+ ;;
302
+
293
303
  --symlink)
294
304
  $rvm_scripts_path/log "warn" "--symlink has been removed, please see 'rvm wrapper'."
295
305
  shift
@@ -492,7 +502,9 @@ rvm() {
492
502
  __rvm_gemset_use
493
503
  fi
494
504
  else
505
+ export rvm_ruby_strings
495
506
  $rvm_scripts_path/gemsets $rvm_ruby_args
507
+ unset rvm_ruby_strings
496
508
 
497
509
  # Clear the gemset.
498
510
  if [[ "$rvm_delete_flag" -eq 1 ]] ; then
@@ -21,10 +21,8 @@ if [[ -z "$environment_name" ]]; then
21
21
  usage ; exit 1
22
22
  fi
23
23
 
24
- rvm_ruby_string="${environment_name}" ;
25
-
26
- # Ensure the string is valid before printing an env.
27
- { __rvm_ruby_string && __rvm_select && __rvm_use; }> /dev/null 2>&1
24
+ # Exit when we encounter an unknown environment name.
25
+ __rvm_become "$environment_name"
28
26
 
29
27
  if [[ "$?" = 0 ]]; then
30
28
  __rvm_use
@@ -6,9 +6,9 @@ trap "if [[ -d $rvm_tmp_path/ ]] && [[ -f $rvm_tmp_path/$$ ]] ; then rm -f $rvm_
6
6
 
7
7
  record_md5() {
8
8
  if [[ "Darwin" = "$(uname)" ]] || [[ "FreeBSD" = "$(uname)" ]]; then
9
- archive_md5="$(/sbin/md5 $archive | awk '{print $NF}')"
9
+ archive_md5="$(/sbin/md5 -q "${archive}")"
10
10
  else
11
- archive_md5="$(md5sum $archive | awk '{print $1}')"
11
+ archive_md5="$(md5sum "${archive}" | awk '{print $1}')"
12
12
  fi
13
13
  $rvm_scripts_path/db "$rvm_config_path/md5" "$archive" "$archive_md5"
14
14
  }
@@ -342,39 +342,18 @@ gemset_initial() {
342
342
  for gemsets_path in "$rvm_gemsets_path" "$rvm_gemsets_path/$rvm_ruby_interpreter" "$rvm_gemsets_path/$rvm_ruby_interpreter/$rvm_ruby_version" "$rvm_gemsets_path/$rvm_ruby_interpreter/$rvm_ruby_version/$rvm_ruby_patch_level" ; do
343
343
  if [[ ! -z "$rvm_gemset_name" ]] ; then
344
344
  if [[ -s "${gemsets_path}/${rvm_gemset_name}.gems" ]] ; then
345
- printf $(rvm gemset import "${gemsets_path}/${rvm_gemset_name}.gems") > /dev/null
345
+ (source "$rvm_scripts_path/rvm"; rvm gemset import "${gemsets_path}/${rvm_gemset_name}.gems") > /dev/null
346
346
  fi
347
347
  else
348
348
  if [[ -d "$gemsets_path" ]] && [[ -s "${gemsets_path}/default.gems" ]] ; then
349
- printf $(rvm gemset import "$gemsets_path/default.gems") > /dev/null
349
+ (source "$rvm_scripts_path/rvm"; rvm gemset import "$gemsets_path/default.gems") > /dev/null
350
350
  fi
351
351
  if [[ -d "$gemsets_path" ]] && [[ -s "${gemsets_path}/global.gems" ]] ; then
352
- printf $(rvm use "$rvm_ruby_string@global" --create ; rvm gemset import "${gemsets_path}/global.gems") > /dev/null
352
+ (source "$rvm_scripts_path/rvm"; rvm use "$rvm_ruby_string@global" --create ; rvm gemset import "${gemsets_path}/global.gems") > /dev/null
353
353
  fi
354
354
  fi
355
355
  done
356
356
  $rvm_scripts_path/log "info" "Installation of gems for $(__rvm_environment_identifier) is complete."
357
-
358
- # Original code, which swapped out the environments on the fly.
359
- #post_install_gems="rdoc rake"
360
- #for rvm_gem_name in $(echo $post_install_gems); do
361
- # home="$GEM_HOME" ; path="$GEM_PATH" # Save
362
- # for dir in $rvm_ruby_global_gems_path $rvm_ruby_gem_home ; do
363
- # GEM_HOME="$dir" ; GEM_PATH="$dir" ; BUNDLE_PATH="$dir"
364
- # export GEM_HOME GEM_PATH BUNDLE_PATH
365
- # __rvm_run "gems.install" "$rvm_ruby_home/bin/gem install --no-rdoc --no-ri $rvm_gem_name $rvm_gem_options" "Installing $rvm_gem_name to $dir"
366
-
367
- # if [[ -x $rvm_ruby_gem_home/bin/$rvm_gem_name ]] ; then
368
- # if [[ "$rvm_ruby_gem_home" != "$rvm_ruby_home" ]] && [[ ! -x $rvm_ruby_home/bin/$rvm_gem_name ]] ; then
369
- # ln -nfs $rvm_ruby_gem_home/bin/$rvm_gem_name $rvm_ruby_home/bin/$rvm_gem_name
370
- # fi
371
- # __rvm_inject_ruby_shebang "$rvm_ruby_home/bin/$rvm_gem_name"
372
- # __rvm_inject_gem_env "$rvm_ruby_home/bin/$rvm_gem_name"
373
- # fi
374
- # done ; unset home path dir
375
- # GEM_HOME="$home" ; GEM_PATH="$path" ; BUNDLE_PATH="$home"
376
- # export GEM_HOME GEM_PATH BUNDLE_PATH
377
- #done ; unset rvm_gem_name post_install_gems
378
357
  }
379
358
 
380
359
  unset GEM_PATH
@@ -389,7 +368,17 @@ gems_args=$(echo "$*" | awk '{$1="" ; print}' | sed -e 's/^[[:space:]]*//' -e 's
389
368
  export rvm_gemset_name
390
369
 
391
370
  if [[ "import" = "$action" ]] || [[ "load" = "$action" ]] ; then
392
- gemset_import
371
+ if [[ -z "$rvm_ruby_strings" ]]; then
372
+ gemset_import
373
+ else
374
+ original_env="$(__rvm_environment_identifier)"
375
+ for rvm_ruby_string in $(echo "$rvm_ruby_strings" | tr "," " "); do
376
+ __rvm_become
377
+ gemset_import
378
+ done
379
+ __rvm_become "$original_env"
380
+ unset original_env
381
+ fi
393
382
  elif [[ "export" = "$action" ]] || [[ "dump" = "$action" ]] ; then
394
383
  gemset_export
395
384
  elif [[ "create" = "$action" ]] ; then
@@ -135,7 +135,7 @@ if [[ -z "$ruby_strings" ]] ; then
135
135
  info_sections
136
136
  else
137
137
  for ruby_string in $(printf $ruby_strings | tr ',' ' ') ; do
138
- rvm_ruby_string="${ruby_string}" ; __rvm_select ; __rvm_use
138
+ __rvm_become "$ruby_string"
139
139
  printf "$(__rvm_environment_identifier):\n"
140
140
  info_sections
141
141
  done
@@ -171,8 +171,8 @@ fi
171
171
  #
172
172
  spinner
173
173
  mkdir -p "$rvm_gemsets_path"
174
- for gemset_file in $(cd $install_source_path/gemsets ; find . -iname '*.gems' | sed 's/\.\///') ; do
175
- source_path="$install_source_path/gemsets"
174
+ for gemset_file in $(cd gemsets ; find . -iname '*.gems' | sed 's/\.\///') ; do
175
+ source_path="$(pwd)/gemsets"
176
176
  destination="$rvm_gemsets_path/$gemset_file"
177
177
  destination_path="$(dirname "$destination")"
178
178
  if [[ ! -s "$destination" ]] ; then
@@ -271,10 +271,10 @@ printf "\n ~ Wayne\n"
271
271
 
272
272
  if [[ "$upgrade_flag" -eq 1 ]] ; then
273
273
  printf "\n$(tput setaf 6)Upgrade Notes\n"
274
- printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
275
- printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
276
274
  printf "\n * 'rvm notes' tells you OS dependency packages for installing rubies."
275
+ printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
277
276
  printf "\n * 1.8.7 default patchlevel is p174, override ~/.rvm/config/db in ~/.rvm/config/user"
277
+ printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
278
278
  printf "\n$(tput sgr0)\n"
279
279
  printf "\nUpgrade of RVM in $rvm_path/ is complete.\n\n"
280
280
  else
@@ -101,6 +101,7 @@ __rvm_install_source() {
101
101
  }
102
102
 
103
103
  __rvm_install_ruby() {
104
+
104
105
  if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
105
106
 
106
107
  if [[ ! -z "$RUBYOPT" ]] ; then ruby_options="$RUBYOPT" ; unset RUBYOPT ; fi
@@ -638,7 +639,6 @@ RubyWrapper
638
639
  *) $rvm_scripts_path/log "fail" "Ruby interpreter '$rvm_ruby_interpreter' is not known."
639
640
 
640
641
  esac
641
-
642
642
 
643
643
  # Import the initial gemsets.
644
644
  (source $rvm_scripts_path/rvm; rvm use "$rvm_ruby_string"; $rvm_scripts_path/gemsets initial)
@@ -764,6 +764,16 @@ __rvm_fetch_ruby() {
764
764
  fi
765
765
  }
766
766
 
767
+ __rvm_check_default() {
768
+ default_ruby_interpreter="$(rvm alias show default 2>/dev/null | awk -F"${rvm_gemset_seperator:-"@"}" '{print $1}')"
769
+ current_ruby_interpreter="$(echo "$rvm_ruby_string" | awk -F"${rvm_gemset_seperator:-"@"}" '{print $1}')"
770
+ if [[ -n "$current_ruby_interpreter" && "$current_ruby_interpreter" == "$default_ruby_interpreter" ]]; then
771
+ # In a new subshell, set the default interpeter to system.
772
+ (source $rvm_scripts_path/rvm; rvm use system --default)
773
+ fi
774
+ unset default_ruby_interpreter current_ruby_interpreter
775
+ }
776
+
767
777
  __rvm_uninstall_ruby() {
768
778
  if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
769
779
 
@@ -780,6 +790,9 @@ __rvm_uninstall_ruby() {
780
790
  fi
781
791
  done ; unset dir
782
792
  __rvm_remove_gemsets
793
+
794
+ __rvm_check_default
795
+
783
796
  else
784
797
  $rvm_scripts_path/log "fail" "Cannot uninstall unknown package '$rvm_ruby_string'"
785
798
  fi ; unset rvm_uninstall_flag
@@ -801,9 +814,8 @@ __rvm_remove_ruby() {
801
814
  rm -f $rvm_bin_path/$rvm_ruby_string
802
815
  fi
803
816
 
804
- if grep -q "$rvm_ruby_string" "$rvm_config_path/default" 2>/dev/null ; then
805
- rm -f "$rvm_config_path/default"
806
- fi
817
+ __rvm_check_default
818
+
807
819
  done ; unset dir
808
820
  __rvm_remove_gemsets
809
821
  else
@@ -839,6 +851,17 @@ __rvm_post_install() {
839
851
 
840
852
  __rvm_irbrc
841
853
  __rvm_generate_default_docs
854
+
855
+ if [[ -n "$rvm_ruby_aliases" ]]; then
856
+ $rvm_scripts_path/log "info" "Setting up aliases for $rvm_ruby_string"
857
+ for ruby_alias in $rvm_ruby_aliases; do
858
+ $rvm_scripts_path/log "info" "Aliasing $rvm_ruby_string to $ruby_alias"
859
+ $rvm_scripts_path/alias delete "$ruby_alias" > /dev/null 2>&1
860
+ $rvm_scripts_path/alias create "$ruby_alias" "$rvm_ruby_string" > /dev/null 2>&1
861
+ done
862
+ unset rvm_ruby_aliases ruby_alias
863
+ fi
864
+
842
865
  }
843
866
 
844
867
  __rvm_generate_default_docs() {
@@ -171,8 +171,8 @@ fi
171
171
  #
172
172
  spinner
173
173
  mkdir -p "$rvm_gemsets_path"
174
- for gemset_file in $(cd $install_source_path/gemsets ; find . -iname '*.gems' | sed 's/\.\///') ; do
175
- source_path="$install_source_path/gemsets"
174
+ for gemset_file in $(cd gemsets ; find . -iname '*.gems' | sed 's/\.\///') ; do
175
+ source_path="$(pwd)/gemsets"
176
176
  destination="$rvm_gemsets_path/$gemset_file"
177
177
  destination_path="$(dirname "$destination")"
178
178
  if [[ ! -s "$destination" ]] ; then
@@ -271,10 +271,10 @@ printf "\n ~ Wayne\n"
271
271
 
272
272
  if [[ "$upgrade_flag" -eq 1 ]] ; then
273
273
  printf "\n$(tput setaf 6)Upgrade Notes\n"
274
- printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
275
- printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
276
274
  printf "\n * 'rvm notes' tells you OS dependency packages for installing rubies."
275
+ printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
277
276
  printf "\n * 1.8.7 default patchlevel is p174, override ~/.rvm/config/db in ~/.rvm/config/user"
277
+ printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
278
278
  printf "\n$(tput sgr0)\n"
279
279
  printf "\nUpgrade of RVM in $rvm_path/ is complete.\n\n"
280
280
  else
@@ -293,12 +293,19 @@ __rvm_use() {
293
293
  new_path="$GEM_HOME/bin:$rvm_ruby_global_gems_path/bin:$MY_RUBY_HOME/bin:$rvm_bin_path:$new_path"
294
294
  fi
295
295
 
296
+ # Export ruby string and gem set me for extrenal scripts to take advantage of them.
297
+ if [[ ! -z "$rvm_ruby_string" ]] ; then export rvm_ruby_string ; fi
298
+ if [[ ! -z "$rvm_gemset_name" ]] ; then export rvm_gemset_name ; fi
299
+ if [[ ! -z "$new_path" ]] ; then export PATH="$new_path" ; unset new_path ; fi
300
+ if [[ ! -z "$rvm_rvmrc_flag" ]] ; then __rvm_set_rvmrc ; fi
301
+
302
+ environment_id="$(__rvm_environment_identifier)"
303
+
296
304
  if [[ ! -z "$rvm_default_flag" ]] && [[ "default" != "$rvm_ruby_interpreter" ]] ; then
297
305
  if [[ "root" = "$(whoami)" ]] ; then
298
306
  # By not providing the name it uses the base ruby binary names.
299
307
  $rvm_scripts_path/wrapper $rvm_ruby_string
300
308
  fi
301
- local environment_id="$(__rvm_environment_identifier)"
302
309
  if [[ "system" = "$rvm_ruby_interpreter" ]] ; then
303
310
  $rvm_scripts_path/alias delete default &> /dev/null
304
311
  rm -f $rvm_config_path/default
@@ -308,7 +315,6 @@ __rvm_use() {
308
315
  else
309
316
  RUBY_VERSION="$($rvm_ruby_home/bin/ruby -v | sed 's#^\(.*\) (.*$#\1#')"
310
317
  export GEM_HOME GEM_PATH BUNDLE_PATH MY_RUBY_HOME RUBY_VERSION
311
- # Delete + then create the default alias.
312
318
  $rvm_scripts_path/alias delete default &> /dev/null
313
319
  $rvm_scripts_path/alias create default "$environment_id" >& /dev/null
314
320
  ln -nfs $rvm_environments_path/$environment_id $rvm_environments_path/default
@@ -317,15 +323,11 @@ __rvm_use() {
317
323
  fi ; unset rvm_default_flag
318
324
 
319
325
  if [[ ! -z "$rvm_wrapper_name" ]] ; then
320
- $rvm_scripts_path/wrapper "$rvm_ruby_string" "$rvm_wrapper_name" > /dev/null 2>&1
326
+ $rvm_scripts_path/wrapper "$environment_id" "$rvm_wrapper_name" > /dev/null 2>&1
321
327
  unset rvm_wrapper_name
322
328
  fi
323
329
 
324
- if [[ ! -z "$rvm_rvmrc_flag" ]] ; then __rvm_set_rvmrc ; fi
325
- # Export ruby string and gem set me for extrenal scripts to take advantage of them.
326
- if [[ ! -z "$rvm_ruby_string" ]] ; then export rvm_ruby_string ; fi
327
- if [[ ! -z "$rvm_gemset_name" ]] ; then export rvm_gemset_name ; fi
328
- if [[ ! -z "$new_path" ]] ; then export PATH="$new_path" ; unset new_path ; fi
330
+ unset environment_id
329
331
 
330
332
  if [[ "maglev" = "$rvm_ruby_interpreter" ]] ; then
331
333
  export MAGLEV_HOME="$rvm_ruby_home"
@@ -17,8 +17,8 @@ fi
17
17
 
18
18
  # Perform an action using one of a selected ruby's specified binaries.
19
19
  __rvm_ruby_do() {
20
- __rvm_select
21
- __rvm_use
20
+ # Return on invalid rubies.
21
+ __rvm_become || return 1
22
22
 
23
23
  binary="$(echo $action | sed 's#do$##')"
24
24
  if [[ -x "$rvm_ruby_home/bin/$binary" ]] ; then
@@ -171,8 +171,8 @@ fi
171
171
  #
172
172
  spinner
173
173
  mkdir -p "$rvm_gemsets_path"
174
- for gemset_file in $(cd $install_source_path/gemsets ; find . -iname '*.gems' | sed 's/\.\///') ; do
175
- source_path="$install_source_path/gemsets"
174
+ for gemset_file in $(cd gemsets ; find . -iname '*.gems' | sed 's/\.\///') ; do
175
+ source_path="$(pwd)/gemsets"
176
176
  destination="$rvm_gemsets_path/$gemset_file"
177
177
  destination_path="$(dirname "$destination")"
178
178
  if [[ ! -s "$destination" ]] ; then
@@ -271,10 +271,10 @@ printf "\n ~ Wayne\n"
271
271
 
272
272
  if [[ "$upgrade_flag" -eq 1 ]] ; then
273
273
  printf "\n$(tput setaf 6)Upgrade Notes\n"
274
- printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
275
- printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
276
274
  printf "\n * 'rvm notes' tells you OS dependency packages for installing rubies."
275
+ printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
277
276
  printf "\n * 1.8.7 default patchlevel is p174, override ~/.rvm/config/db in ~/.rvm/config/user"
277
+ printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
278
278
  printf "\n$(tput sgr0)\n"
279
279
  printf "\nUpgrade of RVM in $rvm_path/ is complete.\n\n"
280
280
  else
@@ -115,7 +115,7 @@ __rvm_cleanup_variables() {
115
115
 
116
116
  if [[ "$rvm_sticky_flag" = "1" ]] ; then export rvm_gemset_name ; else unset rvm_gemset_name ; fi
117
117
 
118
- unset rvm_action rvm_irbrc_file rvm_command rvm_error_message rvm_url 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_ruby_patch rvm_sticky_flagrvm_rvmrc_flag rvm_gems_flag rvm_only_path_flag rvm_docs_flag
118
+ unset rvm_action rvm_irbrc_file rvm_command rvm_error_message rvm_url 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_ruby_patch rvm_sticky_flag rvm_rvmrc_flag rvm_gems_flag rvm_only_path_flag rvm_docs_flag rvm_ruby_aliases
119
119
  }
120
120
 
121
121
  # Unset ruby-specific variables
@@ -125,7 +125,6 @@ __rvm_unset_ruby_variables() {
125
125
 
126
126
  __rvm_set_rvmrc() {
127
127
  if [[ "$HOME" != "$(pwd)" ]] ; then
128
- if [[ "$rvm_create_flag" -eq 1 ]] ; then flags="--create " ; fi
129
128
  if [[ "$rvm_verbose_flag" -eq 1 ]] ; then flags="use " ; fi
130
129
 
131
130
  if [[ -s .rvmrc ]] ; then
@@ -133,7 +132,10 @@ __rvm_set_rvmrc() {
133
132
  $rvm_scripts_path/log "warning" ".rvmrc is not empty, moving aside to preserve."
134
133
  fi
135
134
 
136
- echo "rvm $flags $(basename $rvm_ruby_gem_home)" > .rvmrc
135
+ local identifier=$(__rvm_environment_identifier)
136
+ printf "if [[ -s \"$rvm_environments_path/$identifier\" ]] ; then\n . \"$rvm_environments_path/$identifier\"" > .rvmrc
137
+ printf "\nelse\n rvm --create $flags \"$identifier\"\nfi" >> .rvmrc
138
+
137
139
  unset flags
138
140
  else
139
141
  $rvm_scripts_path/log "error" ".rvmrc cannot be set in your home directory. \n The home .rvmrc is for global rvm settings only."
@@ -541,9 +543,23 @@ __rvm_environment_identifier() {
541
543
  unset ruby_string
542
544
  }
543
545
 
546
+ __rvm_become() {
547
+ [[ -n "$1" ]] && rvm_ruby_string="$1"
548
+ { __rvm_ruby_string && __rvm_select && __rvm_use; } > /dev/null 2>&1
549
+ }
550
+
544
551
  __rvm_ensure_has_enviroment_files() {
545
552
  local environment_identifier="$(__rvm_environment_identifier)"
546
553
  file_name="${rvm_environments_path}/$environment_identifier"
554
+
555
+ # Ensure system is a blank file.
556
+ if [[ "$environment_identifier" == "system" ]]; then
557
+ rm -f "$file_name"
558
+ mkdir -p "$(dirname "$file_name")"
559
+ touch "$file_name"
560
+ return
561
+ fi
562
+
547
563
  if [[ ! -s "$file_name" ]] ; then
548
564
  mkdir -p "${rvm_environments_path}"
549
565
  echo "export PATH=\"${rvm_ruby_gem_home}/bin:${rvm_ruby_global_gems_path}/bin:${rvm_ruby_home}/bin:${rvm_bin_path}:\$PATH\"" > $file_name
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- unset rvm_default_flag
3
+ # Prevent it from recursing.
4
+ unset rvm_default_flag rvm_wrapper_name
4
5
 
5
6
  source $rvm_scripts_path/initialize
6
7
  source $rvm_scripts_path/utility
@@ -70,9 +71,7 @@ if [[ -z "$binaries" ]] ; then
70
71
  fi
71
72
 
72
73
  # Use the correct ruby.
73
- rvm_ruby_string="${ruby_string}"
74
- __rvm_select > /dev/null 2>&1
75
- __rvm_use > /dev/null 2>&1
74
+ __rvm_become "$ruby_string"
76
75
 
77
76
  __rvm_ensure_has_enviroment_files
78
77
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rvm
3
3
  version: !ruby/object:Gem::Version
4
- hash: 81
4
+ hash: 87
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 37
10
- version: 0.1.37
9
+ - 38
10
+ version: 0.1.38
11
11
  platform: ruby
12
12
  authors:
13
13
  - Wayne E. Seguin
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-06-02 00:00:00 -04:00
18
+ date: 2010-06-03 00:00:00 -04:00
19
19
  default_executable: rvm-install
20
20
  dependencies: []
21
21