Merge pull request #633 from sstephenson/upgrade-instructions

Show specific upgrade instructions based on environment
This commit is contained in:
Mislav Marohnić 2014-09-11 10:30:47 -07:00
commit 4ef4ed4cd1
2 changed files with 38 additions and 8 deletions

View file

@ -195,17 +195,25 @@ ruby-build $KEEP $VERBOSE $HAS_PATCH "$DEFINITION" "$PREFIX" || STATUS="$?"
# Display a more helpful message if the definition wasn't found.
if [ "$STATUS" == "2" ]; then
{ candidates="$(definitions "$DEFINITION")"
here="$(dirname "${0%/*}")"
if [ -n "$candidates" ]; then
echo
echo "The following versions contain \`$DEFINITION' in the name:"
echo "$candidates" | indent
fi
echo
echo "You can list all available versions with \`rbenv install --list'."
echo "See all available versions with \`rbenv install --list'."
echo
echo "If the version you're looking for is not present, first try upgrading"
echo "ruby-build. If it's still missing, open a request on the ruby-build"
echo "issue tracker: https://github.com/sstephenson/ruby-build/issues"
echo -n "If the version you need is missing, try upgrading ruby-build"
if [ "$here" != "${here#$(brew --prefix 2>/dev/null)}" ]; then
printf ":\n\n"
echo " brew update && brew upgrade ruby-build"
elif [ -d "${here}/.git" ]; then
printf ":\n\n"
echo " cd ${here} && git pull"
else
printf ".\n"
fi
} >&2
fi

View file

@ -52,6 +52,7 @@ OUT
}
@test "nonexistent version" {
stub brew false
stub_ruby_build 'echo ERROR >&2 && exit 2' \
"--definitions : echo 1.8.7 1.9.3-p0 1.9.3-p194 2.1.2 | tr ' ' $'\\n'"
@ -64,16 +65,37 @@ The following versions contain \`1.9.3' in the name:
1.9.3-p0
1.9.3-p194
You can list all available versions with \`rbenv install --list'.
See all available versions with \`rbenv install --list'.
If the version you're looking for is not present, first try upgrading
ruby-build. If it's still missing, open a request on the ruby-build
issue tracker: https://github.com/sstephenson/ruby-build/issues
If the version you need is missing, try upgrading ruby-build:
cd ${BATS_TEST_DIRNAME}/.. && git pull
OUT
unstub ruby-build
}
@test "Homebrew upgrade instructions" {
stub brew "--prefix : echo '${BATS_TEST_DIRNAME%/*}'"
stub_ruby_build 'echo ERROR >&2 && exit 2' \
"--definitions : true"
run rbenv-install 1.9.3
assert_failure
assert_output <<OUT
ERROR
See all available versions with \`rbenv install --list'.
If the version you need is missing, try upgrading ruby-build:
brew update && brew upgrade ruby-build
OUT
unstub brew
unstub ruby-build
}
@test "no build definitions from plugins" {
assert [ ! -e "${RBENV_ROOT}/plugins" ]
stub_ruby_build 'echo $RUBY_BUILD_DEFINITIONS'