scripts/rvm in rvm-1.0.9 vs scripts/rvm in rvm-1.0.10
- old
+ new
@@ -2,42 +2,65 @@
# rvm : Ruby enVironment Manager
# http://rvm.beginrescueend.com
# http://github.com/wayneeseguin/rvm
-if [[ ${rvm_loaded_flag:-0} -eq 0 || ${rvm_reload_flag:-0} -eq 1 ]] ; then
+grep -q '^rvm ()' < <( declare -f ) # Is RVM is a shell function?
- unset rvm_reload_flag
+if [[ $? -gt 0 || ${rvm_reload_flag:-0} -eq 1 ]] ; then
- if [[ -z "$rvm_ignore_rvmrc" ]]; then
- for rvmrc in /etc/rvmrc $HOME/.rvmrc ; do
+ if [[ ${rvm_ignore_rvmrc:-0} -eq 0 ]]; then
+
+ for rvmrc in /etc/rvmrc "$HOME/.rvmrc" ; do
+
if [[ -f "$rvmrc" ]] ; then
+
if \grep -q '^\s*rvm .*$' $rvmrc ; then
+
printf "\nError: $rvmrc is for rvm settings only.\nrvm CLI may NOT be called from within $rvmrc. \nSkipping the loading of $rvmrc"
+
return 1
+
else
+
source "$rvmrc"
+
fi
+
fi
+
done
+
fi
# Set the default sandboxed value.
if [[ -z "$rvm_selfcontained" ]]; then
- if [[ "root" = "$(whoami)" ]] || [[ -n "$rvm_prefix" && "$rvm_prefix" != "$HOME"/* ]]; then
+
+ if [[ "root" = "$(whoami)" || -n "$rvm_prefix" && "$rvm_prefix" != "$HOME"/* ]]; then
+
rvm_selfcontained=0
+
else
+
rvm_selfcontained=1
+
fi
+
fi
if [[ -z "$rvm_prefix" ]] ; then
+
if [[ "$rvm_selfcontained" = "0" ]] ; then
+
rvm_prefix="/usr/local/"
+
else
+
rvm_prefix="$HOME/."
+
fi
+
fi
# Fix rvm_prefix changes.
echo "$rvm_prefix" | \grep -vq '\(\/\|\.\)$' && [[ -d "$rvm_prefix/rvm/scripts" ]]
@@ -90,10 +113,8 @@
else
printf "\n\$rvm_path is not set. rvm cannot load."
fi
- unset rvm_prefix_needs_trailing_slash rvm_bin_path rvm_man_path rvm_rc_files rvm_gems_path rvm_gems_cache_path rvm_selfcontained rvm_interactive_flag rvm_gems_path rvm_project_rvmrc_default rvm_gemset_separator
-
- rvm_loaded_flag=1
+ unset rvm_prefix_needs_trailing_slash rvm_bin_path rvm_man_path rvm_rc_files rvm_gems_path rvm_gems_cache_path rvm_interactive_flag rvm_gems_path rvm_project_rvmrc_default rvm_gemset_separator
fi