|
|
- #!/usr/bin/env bash -e
-
- expand_path() {
- local cwd="$(pwd)"
- cd "$1"
- pwd
- cd "$cwd"
- }
-
- remove_from_path() {
- local path_to_remove="$(expand_path "$1")"
- local result=""
-
- for path in ${PATH//:/$'\n'}; do
- path="$(expand_path "$path" || true)"
- if [ "$path" != "$path_to_remove" ]; then
- result="${result}${path}:"
- fi
- done
-
- echo "${result%:}"
- }
-
- RBENV_VERSION="$(rbenv-version-name)"
- RBENV_COMMAND="$1"
-
- if [ "$RBENV_VERSION" = "system" ]; then
- PATH="$(remove_from_path "${HOME}/.rbenv/shims")"
- RBENV_COMMAND_PATH="$(command -v "$RBENV_COMMAND")"
- else
- RBENV_COMMAND_PATH="${HOME}/.rbenv/versions/${RBENV_VERSION}/bin/${RBENV_COMMAND}"
- fi
-
- shopt -s nullglob
- RBENV_WHICH_PLUGINS=(/etc/rbenv.d/which/*.bash ${HOME}/.rbenv/rbenv.d/which/*.bash)
- shopt -u nullglob
-
- for script in ${RBENV_WHICH_PLUGINS[@]}; do
- source $script
- done
-
- if [ -x "$RBENV_COMMAND_PATH" ]; then
- echo "$RBENV_COMMAND_PATH"
- else
- echo "rbenv: $RBENV_COMMAND: command not found" >&2
-
- versions="$(rbenv-whence "$RBENV_COMMAND" || true)"
- if [ -n "$versions" ]; then
- { echo
- echo "The \`$1' command exists in these Ruby versions:"
- echo "$versions" | sed 's/^/ /g'
- echo
- } >&2
- fi
-
- exit 127
- fi
|