Commit aee47820 by Sam Stephenson

rbenv-uninstall prompts before removal unless invoked with -f

parent 6d4af030
...@@ -3,24 +3,32 @@ set -e ...@@ -3,24 +3,32 @@ set -e
# Provide rbenv completions # Provide rbenv completions
if [ "$1" = "--complete" ]; then if [ "$1" = "--complete" ]; then
exec ruby-build --definitions exec rbenv versions --bare
fi fi
if [ -z "$RBENV_ROOT" ]; then if [ -z "$RBENV_ROOT" ]; then
RBENV_ROOT="${HOME}/.rbenv" RBENV_ROOT="${HOME}/.rbenv"
fi fi
if [ "$1" = "-f" ]; then
FORCE=1
shift
else
FORCE=""
fi
DEFINITION="$1" DEFINITION="$1"
case "$DEFINITION" in case "$DEFINITION" in
"" | -* ) "" | -* )
{ echo "usage: rbenv uninstall VERSION" { echo "usage: rbenv uninstall [-f] VERSION"
echo " rbenv uninstall /path/to/definition" echo
echo " -f Attempt to remove the specified version without prompting"
echo " for confirmation. If the version does not exist, do not"
echo " display an error message."
echo echo
if [ -n `which rbenv` ]; then
echo "Available versions:" echo "Available versions:"
rbenv versions | sed 's/^/ /' rbenv versions --bare | sed 's/^/ /'
echo echo
fi
} >&2 } >&2
exit 1 exit 1
;; ;;
...@@ -29,9 +37,20 @@ esac ...@@ -29,9 +37,20 @@ esac
VERSION_NAME="${DEFINITION##*/}" VERSION_NAME="${DEFINITION##*/}"
PREFIX="${RBENV_ROOT}/versions/${VERSION_NAME}" PREFIX="${RBENV_ROOT}/versions/${VERSION_NAME}"
if [ ! -e "$PREFIX" ]; then if [ -z "$FORCE" ]; then
echo "Given version ($VERSION_NAME) is not installed" if [ ! -d "$PREFIX" ]; then
echo "rbenv: version \`$VERSION_NAME' not installed" >&2
exit 1 exit 1
fi
read -p "rbenv: remove $PREFIX? "
case "$REPLY" in
y* | Y* ) ;;
* ) exit 1 ;;
esac
fi
if [ -d "$PREFIX" ]; then
rm -rf "$PREFIX"
rbenv rehash
fi fi
rm -rf "$PREFIX"
rbenv rehash
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