Commit db359ec8 by Sam Stephenson

Better option parsing for rbenv-install

parent 8446df21
...@@ -11,23 +11,55 @@ if [ -z "$RBENV_ROOT" ]; then ...@@ -11,23 +11,55 @@ if [ -z "$RBENV_ROOT" ]; then
RBENV_ROOT="${HOME}/.rbenv" RBENV_ROOT="${HOME}/.rbenv"
fi fi
DEFINITION="$1" # Load shared library functions
case "$DEFINITION" in eval "$(ruby-build --lib)" && lib
"" | -* )
{ echo "usage: rbenv install VERSION" usage() {
echo " rbenv install /path/to/definition" { echo "usage: rbenv install [-k|--keep] [-v|--verbose] VERSION"
echo " rbenv install [-k|--keep] [-v|--verbose] /path/to/definition"
echo " rbenv install -l|--list"
echo echo
echo "Available versions:" echo " -l/--list List all available versions"
ruby-build --definitions | sed 's/^/ /' echo " -k/--keep Keep source tree in \$RBENV_BUILD_ROOT after installation"
echo " (defaults to ${RBENV_ROOT}/sources)"
echo " -v/--verbose Verbose mode: print compilation status to stdout"
echo echo
} >&2 } >&2
exit 1
;; [ -z "$1" ] || exit "$1"
"-k" | "--keep" ) }
[ -z "${RBENV_BUILD_ROOT}" ] && RBENV_BUILD_ROOT="${RBENV_ROOT}/sources"
RUBY_BUILD_OPTIONS="${RUBY_BUILD_OPTIONS} -k" unset KEEP
;; unset VERBOSE
esac
parse_options "$@"
for option in "${OPTIONS[@]}"; do
case "$option" in
"h" | "help" )
usage 0
;;
"l" | "list" )
echo "Available versions:"
ruby-build --definitions | sed 's/^/ /'
exit
;;
"k" | "keep" )
[ -n "${RBENV_BUILD_ROOT}" ] || RBENV_BUILD_ROOT="${RBENV_ROOT}/sources"
;;
"v" | "verbose" )
VERBOSE="-v"
;;
"version" )
exec ruby-build --version
;;
* )
usage 1
;;
esac
done
DEFINITION="${ARGUMENTS[0]}"
[ -n "$DEFINITION" ] || usage 1
VERSION_NAME="${DEFINITION##*/}" VERSION_NAME="${DEFINITION##*/}"
PREFIX="${RBENV_ROOT}/versions/${VERSION_NAME}" PREFIX="${RBENV_ROOT}/versions/${VERSION_NAME}"
...@@ -35,8 +67,8 @@ PREFIX="${RBENV_ROOT}/versions/${VERSION_NAME}" ...@@ -35,8 +67,8 @@ PREFIX="${RBENV_ROOT}/versions/${VERSION_NAME}"
# If RBENV_BUILD_ROOT is set, then always pass keep options to ruby-build # If RBENV_BUILD_ROOT is set, then always pass keep options to ruby-build
if [ -n "${RBENV_BUILD_ROOT}" ]; then if [ -n "${RBENV_BUILD_ROOT}" ]; then
export RUBY_BUILD_BUILD_PATH="${RBENV_BUILD_ROOT}/${VERSION_NAME}" export RUBY_BUILD_BUILD_PATH="${RBENV_BUILD_ROOT}/${VERSION_NAME}"
RUBY_BUILD_OPTIONS="${RUBY_BUILD_OPTIONS} -k" KEEP="-k"
fi fi
ruby-build "$DEFINITION" "$PREFIX" "$RUBY_BUILD_OPTIONS" ruby-build $KEEP $VERBOSE "$DEFINITION" "$PREFIX"
rbenv rehash 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