mirror of
https://github.com/rbenv/ruby-build.git
synced 2025-09-04 16:21:12 +02:00
Better option parsing for rbenv-install
This commit is contained in:
parent
8446df21c1
commit
db359ec844
1 changed files with 48 additions and 16 deletions
|
@ -11,23 +11,55 @@ if [ -z "$RBENV_ROOT" ]; then
|
|||
RBENV_ROOT="${HOME}/.rbenv"
|
||||
fi
|
||||
|
||||
DEFINITION="$1"
|
||||
case "$DEFINITION" in
|
||||
"" | -* )
|
||||
{ echo "usage: rbenv install VERSION"
|
||||
echo " rbenv install /path/to/definition"
|
||||
# Load shared library functions
|
||||
eval "$(ruby-build --lib)" && lib
|
||||
|
||||
usage() {
|
||||
{ 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 "Available versions:"
|
||||
ruby-build --definitions | sed 's/^/ /'
|
||||
echo " -l/--list List all available versions"
|
||||
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
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
"-k" | "--keep" )
|
||||
[ -z "${RBENV_BUILD_ROOT}" ] && RBENV_BUILD_ROOT="${RBENV_ROOT}/sources"
|
||||
RUBY_BUILD_OPTIONS="${RUBY_BUILD_OPTIONS} -k"
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -z "$1" ] || exit "$1"
|
||||
}
|
||||
|
||||
unset KEEP
|
||||
unset VERBOSE
|
||||
|
||||
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##*/}"
|
||||
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 [ -n "${RBENV_BUILD_ROOT}" ]; then
|
||||
export RUBY_BUILD_BUILD_PATH="${RBENV_BUILD_ROOT}/${VERSION_NAME}"
|
||||
RUBY_BUILD_OPTIONS="${RUBY_BUILD_OPTIONS} -k"
|
||||
KEEP="-k"
|
||||
fi
|
||||
|
||||
ruby-build "$DEFINITION" "$PREFIX" "$RUBY_BUILD_OPTIONS"
|
||||
ruby-build $KEEP $VERBOSE "$DEFINITION" "$PREFIX"
|
||||
rbenv rehash
|
||||
|
|
Loading…
Reference in a new issue