From bd0e1a73f95201c9243e1c3a2880e79b88e6fe1e Mon Sep 17 00:00:00 2001 From: Ryan Baumann Date: Tue, 9 Aug 2011 16:41:35 -0400 Subject: [PATCH] Split rbenv-version into rbenv-version-name and rbenv-version-origin, update versions, prefix, and which appropriately --- libexec/rbenv-prefix | 2 +- libexec/rbenv-version | 51 +----------------------------------- libexec/rbenv-version-name | 32 ++++++++++++++++++++++ libexec/rbenv-version-origin | 29 ++++++++++++++++++++ libexec/rbenv-versions | 14 +++++----- libexec/rbenv-which | 2 +- 6 files changed, 72 insertions(+), 58 deletions(-) create mode 100755 libexec/rbenv-version-name create mode 100755 libexec/rbenv-version-origin diff --git a/libexec/rbenv-prefix b/libexec/rbenv-prefix index 9d17ee42..f65701f6 100755 --- a/libexec/rbenv-prefix +++ b/libexec/rbenv-prefix @@ -3,7 +3,7 @@ if [ -n "$1" ]; then RBENV_VERSION="$1" elif [ -z "$RBENV_VERSION" ]; then - RBENV_VERSION="$(rbenv-version)" + RBENV_VERSION="$(rbenv-version-name)" fi if [ "$RBENV_VERSION" = "system" ]; then diff --git a/libexec/rbenv-version b/libexec/rbenv-version index 5e7e9940..1143c70d 100755 --- a/libexec/rbenv-version +++ b/libexec/rbenv-version @@ -1,52 +1,3 @@ #!/usr/bin/env bash -e -read_version_file() { - egrep -m 1 '[^[:space:]]' "$1" -} - -find_version_file() { - local root="$(pwd)" - while [ -n "$root" ]; do - if [ -e "${root}/.rbenv-version" ]; then - echo "${root}/.rbenv-version" - return 0 - fi - root="${root%/*}" - done - return 1 -} - -DEFAULT_PATH="${HOME}/.rbenv/default" - -find_default_version_file() { - if [ -e "$DEFAULT_PATH" ]; then - echo "$DEFAULT_PATH" - return 0 - fi - return 1 -} - -if [ -z "$RBENV_VERSION" ]; then - RBENV_VERSION_FILE="$(find_version_file || find_default_version_file || true)" - - if [ -n "$RBENV_VERSION_FILE" ]; then - RBENV_VERSION="$(read_version_file "$RBENV_VERSION_FILE")" - else - echo system > "$DEFAULT_PATH" - RBENV_VERSION=system - fi -fi - -if [ "$RBENV_VERSION" = "system" ]; then - echo "$RBENV_VERSION" - exit -fi - -RBENV_VERSION_PATH="${HOME}/.rbenv/versions/${RBENV_VERSION}" - -if [ -d "$RBENV_VERSION_PATH" ]; then - echo "$RBENV_VERSION" -else - echo "rbenv: version \`$RBENV_VERSION' is not installed" >&2 - exit 1 -fi +echo "$(rbenv-version-name) (set by $(rbenv-version-origin))" diff --git a/libexec/rbenv-version-name b/libexec/rbenv-version-name new file mode 100755 index 00000000..fd2f1665 --- /dev/null +++ b/libexec/rbenv-version-name @@ -0,0 +1,32 @@ +#!/usr/bin/env bash -e + +read_version_file() { + egrep -m 1 '[^[:space:]]' "$1" +} + +DEFAULT_PATH="${HOME}/.rbenv/default" + +if [ -z "$RBENV_VERSION" ]; then + RBENV_VERSION_FILE="$(rbenv-version-origin)" + + if [ -n "$RBENV_VERSION_FILE" ]; then + RBENV_VERSION="$(read_version_file "$RBENV_VERSION_FILE")" + else + echo system > "$DEFAULT_PATH" + RBENV_VERSION=system + fi +fi + +if [ "$RBENV_VERSION" = "system" ]; then + echo "$RBENV_VERSION" + exit +fi + +RBENV_VERSION_PATH="${HOME}/.rbenv/versions/${RBENV_VERSION}" + +if [ -d "$RBENV_VERSION_PATH" ]; then + echo "$RBENV_VERSION" +else + echo "rbenv: version \`$RBENV_VERSION' is not installed" >&2 + exit 1 +fi diff --git a/libexec/rbenv-version-origin b/libexec/rbenv-version-origin new file mode 100755 index 00000000..38e4f3d5 --- /dev/null +++ b/libexec/rbenv-version-origin @@ -0,0 +1,29 @@ +#!/usr/bin/env bash -e + +find_version_file() { + local root="$(pwd)" + while [ -n "$root" ]; do + if [ -e "${root}/.rbenv-version" ]; then + echo "${root}/.rbenv-version" + return 0 + fi + root="${root%/*}" + done + return 1 +} + +DEFAULT_PATH="${HOME}/.rbenv/default" + +find_default_version_file() { + if [ -e "$DEFAULT_PATH" ]; then + echo "$DEFAULT_PATH" + return 0 + fi + return 1 +} + +if [ -z "$RBENV_VERSION" ]; then + find_version_file || find_default_version_file || true +else + echo "RBENV_VERSION environment variable" +fi diff --git a/libexec/rbenv-versions b/libexec/rbenv-versions index e69c751f..32b56c5b 100755 --- a/libexec/rbenv-versions +++ b/libexec/rbenv-versions @@ -1,21 +1,23 @@ #!/usr/bin/env bash -e -RBENV_VERSION="$(rbenv-version)" - -hit_prefix="* " -miss_prefix=" " +RBENV_VERSION_NAME="$(rbenv-version-name)" if [ "$1" = "--bare" ]; then hit_prefix="" miss_prefix="" + print_version="$RBENV_VERSION_NAME" +else + hit_prefix="* " + miss_prefix=" " + print_version="$(rbenv-version)" fi for path in "${HOME}/.rbenv/versions/"*; do if [ -d "$path" ]; then version="${path##*/}" - if [ "$version" == "$RBENV_VERSION" ]; then - echo "${hit_prefix}${version}" + if [ "$version" == "$RBENV_VERSION_NAME" ]; then + echo "${hit_prefix}${print_version}" else echo "${miss_prefix}${version}" fi diff --git a/libexec/rbenv-which b/libexec/rbenv-which index f38bba61..d6360b0b 100755 --- a/libexec/rbenv-which +++ b/libexec/rbenv-which @@ -21,7 +21,7 @@ remove_from_path() { echo "${result%:}" } -RBENV_VERSION="$(rbenv-version)" +RBENV_VERSION="$(rbenv-version-name)" RBENV_COMMAND="$1" if [ "$RBENV_VERSION" = "system" ]; then