Commit 386b3761 by Sam Stephenson

`rbenv install 1.9.3` lists matching definitions

parent 28bdf54e
...@@ -37,6 +37,15 @@ usage() { ...@@ -37,6 +37,15 @@ usage() {
[ -z "$1" ] || exit "$1" [ -z "$1" ] || exit "$1"
} }
definitions() {
local query="$1"
ruby-build --definitions | grep -F "$query" || true
}
indent() {
sed 's/^/ /'
}
unset FORCE unset FORCE
unset KEEP unset KEEP
unset VERBOSE unset VERBOSE
...@@ -49,7 +58,7 @@ for option in "${OPTIONS[@]}"; do ...@@ -49,7 +58,7 @@ for option in "${OPTIONS[@]}"; do
;; ;;
"l" | "list" ) "l" | "list" )
echo "Available versions:" echo "Available versions:"
ruby-build --definitions | sed 's/^/ /' definitions | indent
exit exit
;; ;;
"f" | "force" ) "f" | "force" )
...@@ -144,11 +153,27 @@ cleanup() { ...@@ -144,11 +153,27 @@ cleanup() {
trap cleanup SIGINT trap cleanup SIGINT
# Invoke `ruby-build` and record the exit status in $STATUS. Run # Invoke `ruby-build` and record the exit status in $STATUS.
# `rbenv rehash` after a successful installation.
STATUS=0 STATUS=0
ruby-build $KEEP $VERBOSE "$DEFINITION" "$PREFIX" || STATUS="$?" ruby-build $KEEP $VERBOSE "$DEFINITION" "$PREFIX" || STATUS="$?"
# Display a more helpful message if the definition wasn't found.
if [ "$STATUS" == "2" ]; then
{ candidates="$(definitions "$DEFINITION")"
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
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"
} >&2
fi
# Execute `after_install` hooks. # Execute `after_install` hooks.
for hook in "${after_hooks[@]}"; do eval "$hook"; done for hook in "${after_hooks[@]}"; do eval "$hook"; done
......
...@@ -641,7 +641,7 @@ elif [ ! -e "$DEFINITION_PATH" ]; then ...@@ -641,7 +641,7 @@ elif [ ! -e "$DEFINITION_PATH" ]; then
DEFINITION_PATH="$BUILTIN_DEFINITION_PATH" DEFINITION_PATH="$BUILTIN_DEFINITION_PATH"
else else
echo "ruby-build: definition not found: ${DEFINITION_PATH}" >&2 echo "ruby-build: definition not found: ${DEFINITION_PATH}" >&2
exit 1 exit 2
fi fi
fi fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment