scripts/rvm-install in rvm-1.0.10 vs scripts/rvm-install in rvm-1.0.11

- old
+ new

@@ -1,8 +1,9 @@ #!/usr/bin/env bash -#set -u # Error on uninitialized variables. +set -o errtrace +export PS4='+[${BASH_SOURCE}] : ${LINENO} : ${FUNCNAME[0]:+${FUNCNAME[0]}() $ }' if [[ -z "$rvm_selfcontained" ]]; then if [[ "root" = "$(whoami)" ]] || [[ -n "$rvm_prefix" && "$rvm_prefix" != "$HOME"/* ]]; then export rvm_selfcontained=0 else @@ -11,10 +12,11 @@ fi unset rvm_auto_flag install_source_path="$(dirname "$0" | sed 's#\/scripts$##')" + if [[ -d "$install_source_path/scripts" ]] && [[ -s "$install_source_path/scripts/utility" ]] ; then builtin cd "$install_source_path" fi source scripts/version @@ -32,25 +34,16 @@ --version : display rvm package version " } check_rubyopt_conditions() { - if [[ -n "$RUBYOPT" ]]; then + if [[ -n "${RUBYOPT:-""}" ]]; then printf "\n\nWARNING: You have RUBYOPT set in your current environment. This may interfere with normal rvm" printf "\n operation. If errors show up, please try unsetting RUBYOPT first.\n" fi } -# Regenerates a users wrappers as part of the update. -regenerate_wrappers() { - printf "\n" - if command -v __rvm_regenerate_wrappers >/dev/null; then - __rvm_regenerate_wrappers - fi - printf "\n" -} - andand_return_instructions() { printf " This means that if you see something like: '[ -z \"\$PS1\" ] && return' @@ -156,32 +149,43 @@ * If you wish to have the 'pretty colors' again, set in ~/.rvmrc: export rvm_pretty_print_flag=1 " } -if echo "$*" | grep -q 'trace' ; then echo "$*" ; env | grep '^rvm_' ; set -x ; fi +set -o noclobber +set -o nounset while [[ $# -gt 0 ]] ; do token="$1" ; shift case "$token" in --auto) rvm_auto_flag=1 ;; --prefix) rvm_prefix="$1" ; shift ;; --version) rvm_path="$PWD" ; __rvm_version ; unset rvm_path ; exit ;; + --debug) + set -o verbose + ;; + --trace) + echo "$*" + env | grep '^rvm_' + set -o xtrace + ;; --help|*) usage ;; esac done -if [[ -z "$rvm_prefix" ]] ; then +if [[ -z "${rvm_prefix:-""}" ]] ; then __rvm_load_rvmrc if [[ "$rvm_selfcontained" = "0" ]] ; then rvm_prefix="${rvm_prefix:-"/usr/local/"}" else rvm_prefix="${rvm_prefix:-"$HOME/."}" fi fi -if [[ -z "$rvm_path" ]] ; then rvm_path="${rvm_prefix}rvm" ; fi +if [[ -z "${rvm_path:-""}" ]] ; then + rvm_path="${rvm_prefix}rvm" +fi source scripts/initialize if grep -q 'scripts/rvm' "$HOME"/.bash* 2>/dev/null || grep -q 'scripts/rvm' "$HOME"/.zsh* 2>/dev/null; then if [[ -d "$rvm_path" ]] && [[ -s "${rvm_path}/scripts/rvm" ]] ; then @@ -231,11 +235,11 @@ printf "\nInstalling RVM to $rvm_path/" fi -directories=( "${rvm_archives_path:-"$rvm_path/archives"}" "${rvm_src_path:-"$rvm_path/src"}" "${rvm_log_path:-"$rvm_path/log"}" "$rvm_bin_path" "${rvm_gems_path:-"$rvm_path/gems"}" "${rvm_rubies_path:-"$rvm_path/rubies"}" "$rvm_path/config" "${rvm_tmp_path:-"$rvm_path/tmp"}" ) +directories=( "${rvm_archives_path:-"$rvm_path/archives"}" "${rvm_src_path:-"$rvm_path/src"}" "${rvm_log_path:-"$rvm_path/log"}" "$rvm_bin_path" "${rvm_gems_path:-"$rvm_path/gems"}" "${rvm_rubies_path:-"$rvm_path/rubies"}" "$rvm_path/config" "${rvm_tmp_path:-"$rvm_path/tmp"}" "$rvm_path/bin" ) for directory in "${directories[@]}" ; do if [[ ! -d "$directory" ]] ; then @@ -301,15 +305,15 @@ chmod +x "${rvm_bin_path:-"$rvm_path/bin"}"/* # TODO: this is quite suboptimal. # # RC Files # -if [[ -n "$rvm_auto_flag" ]] ; then +if [[ ${rvm_auto_flag:-0} -eq 1 ]] ; then printf "Checking rc files... ($rvm_rc_files)" - if [[ "$rvm_loaded_flag" != "1" ]] ; then + if [[ ${rvm_loaded_flag:-0} -ne 1 ]] ; then for rcfile in $(printf $rvm_rc_files) ; do if [[ ! -f $rcfile ]] ; then touch $rcfile ; fi @@ -490,29 +494,23 @@ fi # # End of gemset migration. # +declare -a files + printf "\n Correct permissions for base binaries in $rvm_bin_path..." mkdir -p "${rvm_bin_path:-"$rvm_path/bin"}" -for file in rvm rvmsudo rvm-shell rvm-auto-ruby ; do +files=(rvm rvmsudo rvm-shell rvm-auto-ruby) +for file in "${files[@]}" ; do [[ -s "${rvm_bin_path:-"$rvm_path/bin"}/$file" ]] && chmod +x "${rvm_bin_path:-"$rvm_path/bin"}/$file" done -# Cleanup any .swp files that might have appeared. -files=($( find "$rvm_path/" -mindepth 1 -maxdepth 2 -iname '*.swp' -type f )) - -for file in "${files[@]}" ; do - - [[ -f "$file" ]] && rm -f "$file" - -done - printf "\n Copying manpages into place." files=($(builtin cd "$install_source_path/man" ; find . -maxdepth 1 -mindepth 1 -type f -print)) for file in "${files[@]//.\/}" ; do @@ -521,19 +519,37 @@ cp -R "$install_source_path/man/$man_file" "$rvm_man_path/" done -[[ "$upgrade_flag" = 0 ]] && ./scripts/notes +files=($( find "$rvm_path/" -mindepth 1 -maxdepth 2 -iname '*.swp' -type f )) +if [[ ${#files[@]} -gt 0 ]] ; then + + printf "\n Cleanup any .swp files." + + for file in "${files[@]}" ; do + + if [[ -f "$file" ]] ; then + rm -f "$file" + fi + + done +fi + +if [[ $upgrade_flag -eq 0 ]] ; then + chmod +x ./script/notes # Sometimes things don't clone properly :/ + ./scripts/notes +fi + name="$(awk -F= '/^[[:space:]]*name/{print $2}' ~/.gitconfig 2>/dev/null)" if [[ ${upgrade_flag:-0} -eq 1 ]] ; then upgrade_notes check_rubyopt_conditions - + regenerate_wrappers printf "\nUpgrade of RVM in $rvm_path/ is complete.\n\n" else