Confirm reinstalling already-installed versions unless invoked with --force

This commit is contained in:
Sam Stephenson 2013-01-29 17:22:56 -06:00
parent 5fd4ec64cc
commit 8372808980
2 changed files with 21 additions and 4 deletions

View file

@ -2,11 +2,12 @@
#
# Summary: Install a Ruby version using the ruby-build plugin
#
# Usage: rbenv install [-k|--keep] [-v|--verbose] <version>
# rbenv install [-k|--keep] [-v|--verbose] /path/to/definition
# Usage: rbenv install [-f|--force] [-k|--keep] [-v|--verbose] <version>
# rbenv install [-f|--force] [-k|--keep] [-v|--verbose] <definition-file>
# rbenv install -l|--list
#
# -l/--list List all available versions
# -f/--force Install even if the version appears to be installed already
# -k/--keep Keep source tree in $RBENV_BUILD_ROOT after installation
# (defaults to $RBENV_ROOT/sources)
# -v/--verbose Verbose mode: print compilation status to stdout
@ -36,6 +37,7 @@ usage() {
[ -z "$1" ] || exit "$1"
}
unset FORCE
unset KEEP
unset VERBOSE
@ -50,6 +52,9 @@ for option in "${OPTIONS[@]}"; do
ruby-build --definitions | sed 's/^/ /'
exit
;;
"f" | "force" )
FORCE=true
;;
"k" | "keep" )
[ -n "${RBENV_BUILD_ROOT}" ] || RBENV_BUILD_ROOT="${RBENV_ROOT}/sources"
;;
@ -102,6 +107,18 @@ done
[ -n "$VERSION_NAME" ] || VERSION_NAME="${DEFINITION##*/}"
PREFIX="${RBENV_ROOT}/versions/${VERSION_NAME}"
# If the installation prefix exists, prompt for confirmation unless
# the --force option was specified.
if [ -z "$FORCE" ] && [ -d "${PREFIX}/bin" ]; then
echo "rbenv: $PREFIX already exists" >&2
read -p "continue with installation? (y/N) "
case "$REPLY" in
y* | Y* ) ;;
* ) exit 1 ;;
esac
fi
# If RBENV_BUILD_ROOT is set, always pass keep options to ruby-build.
if [ -n "${RBENV_BUILD_ROOT}" ]; then
export RUBY_BUILD_BUILD_PATH="${RBENV_BUILD_ROOT}/${VERSION_NAME}"

View file

@ -2,7 +2,7 @@
#
# Summary: Uninstall a specific Ruby version
#
# Usage: rbenv uninstall [-f] <version>
# Usage: rbenv uninstall [-f|--force] <version>
#
# -f Attempt to remove the specified version without prompting
# for confirmation. If the version does not exist, do not
@ -22,7 +22,7 @@ if [ -z "$RBENV_ROOT" ]; then
fi
unset FORCE
if [ "$1" = "-f" ]; then
if [ "$1" = "-f" ] || [ "$1" = "--force" ]; then
FORCE=true
shift
fi