scripts/upgrade in rvm-1.0.2 vs scripts/upgrade in rvm-1.0.3
- old
+ new
@@ -2,20 +2,20 @@
unset GREP_OPTIONS
source "$rvm_scripts_path/base"
usage() {
- echo "Usage: rvm upgrade prefix [existing-ruby]" >&2
+ echo "Usage: rvm upgrade prefix [specific version]" >&2
echo "Upgrades the latest installed ruby with a given prefix (e.g. ree) to a new version." >&2
exit 1
}
confirm() {
printf "$1 (Y/n): "
local confirmation_response
read -r confirmation_response
- [[ -z "$confirmation_response" ]] || echo "$confirmation_response" | \grep -qi '^y'
+ [[ -z "$confirmation_response" ]] || echo $confirmation_response | \grep -qi '^y\|^Y'
}
die_with_error() {
"$rvm_scripts_path/log" "fail" "$1"
exit "${2:-1}"
@@ -28,12 +28,11 @@
expand_existing_ruby() {
local prefix="$(expand_ruby_name "$1" | awk -F'-' '{print $1"-"$2}')"
local ruby_name
while read -r ruby_name; do
if [[ "$ruby_name" != "$expanded_destination"* ]]; then
- echo "$ruby_name"
- return 0
+ echo "$ruby_name" ; return 0
fi
done < <("$rvm_scripts_path/list" strings | tr ' ' '\n' | sort -ur | \grep "^$prefix" | \grep -v '-head$' | head -n1)
return 1
}
@@ -46,26 +45,28 @@
confirm "Are you sure you wish to upgrade from $expanded_source to $expanded_destination?" || die_with_error "Cancelling upgrade."
if [[ ! -d "$rvm_rubies_path/$expanded_destination" ]]; then
"$rvm_scripts_path/log" "info" "Installing new ruby $expanded_destination"
$rvm_bin_path/rvm install "$expanded_destination"
- result="$?"
- [[ "$result" -gt 0 ]] && die_with_error "Unable to install ruby $expanded_destination. Please install it manually to continue." "$result"
+ result="$?" ; [[ "$result" -gt 0 ]] && die_with_error "Unable to install ruby $expanded_destination. Please install it manually to continue." "$result"
fi
"$rvm_scripts_path/log" "info" "Migrating gems from $expanded_source to $expanded_destination"
"$rvm_scripts_path/migrate" "$expanded_source" "$expanded_destination"
- result="$?"
- [[ "$result" -gt 0 ]] && die_with_error "Error migrating gems." "$result"
+ result="$?" ; [[ "$result" -gt 0 ]] && die_with_error "Error migrating gems." "$result"
"$rvm_scripts_path/log" "info" "Upgrade complete!"
}
-[[ -z "$1" ]] && usage
+args=($*)
+destination_ruby="${args[0]}"
+source_ruby="${args[1]:-"$(expand_existing_ruby "$destination_ruby")"}"
+args="$(echo ${args[@]:2}) " # Strip trailing / leading / extra spacing.
-destination_ruby="$1"; shift
+[[ -z "$source_ruby" ]] && usage
+
expanded_destination="$(expand_ruby_name "$destination_ruby")"
-[[ -z "$expanded_destination" ]] && die_with_error "The destination ruby was not a valid ruby string."
-source_ruby="${1:-"$(expand_existing_ruby "$destination_ruby")"}"
+[[ -z "$source_ruby" ]] && die_with_error "The Source ruby was not specified, a valid ruby string, or not found."
+[[ -z "$expanded_destination" ]] && die_with_error "The destination ruby was not a valid ruby string, or not found."
upgrade_ruby