mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-17 07:43:46 -05:00
Merge pull request #302 from sstephenson/ruby-version
Support for .ruby-version files
This commit is contained in:
@@ -6,14 +6,18 @@
|
||||
# rbenv local --unset
|
||||
#
|
||||
# Sets the local directory-specific Ruby version by writing the version
|
||||
# name to a file named `.rbenv-version'.
|
||||
# name to a file named `.ruby-version'.
|
||||
#
|
||||
# When you run a Ruby command, rbenv will look for an `.rbenv-version'
|
||||
# When you run a Ruby command, rbenv will look for a `.ruby-version'
|
||||
# file in the current directory and each parent directory. If no such
|
||||
# file is found in the tree, rbenv will use the global Ruby version
|
||||
# specified with `rbenv global', or the version specified in the
|
||||
# RBENV_VERSION environment variable.
|
||||
#
|
||||
# For backwards compatibility, rbenv will also read version
|
||||
# specifications from `.rbenv-version' files, but a `.ruby-version'
|
||||
# file in the same directory takes precedence.
|
||||
#
|
||||
# <version> should be a string matching a Ruby version known to rbenv.
|
||||
# The special version string `system' will use your default system Ruby.
|
||||
# Run `rbenv versions' for a list of available Ruby versions.
|
||||
@@ -29,14 +33,20 @@ if [ "$1" = "--complete" ]; then
|
||||
fi
|
||||
|
||||
RBENV_VERSION="$1"
|
||||
RBENV_VERSION_FILE=".rbenv-version"
|
||||
|
||||
if [ "$RBENV_VERSION" = "--unset" ]; then
|
||||
rm -f "$RBENV_VERSION_FILE"
|
||||
rm -f .ruby-version .rbenv-version
|
||||
elif [ -n "$RBENV_VERSION" ]; then
|
||||
rbenv-version-file-write "$RBENV_VERSION_FILE" "$RBENV_VERSION"
|
||||
if [ "$(RBENV_VERSION= rbenv-version-origin)" -ef .rbenv-version ]; then
|
||||
rm -f .rbenv-version
|
||||
{ echo "rbenv: removed existing \`.rbenv-version' file and migrated"
|
||||
echo " local version specification to \`.ruby-version' file"
|
||||
} >&2
|
||||
fi
|
||||
rbenv-version-file-write .ruby-version "$RBENV_VERSION"
|
||||
else
|
||||
rbenv-version-file-read "$RBENV_VERSION_FILE" ||
|
||||
rbenv-version-file-read .ruby-version ||
|
||||
rbenv-version-file-read .rbenv-version ||
|
||||
{ echo "rbenv: no local version configured for this directory"
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
@@ -6,7 +6,10 @@ set -e
|
||||
find_local_version_file() {
|
||||
local root="$1"
|
||||
while [ -n "$root" ]; do
|
||||
if [ -e "${root}/.rbenv-version" ]; then
|
||||
if [ -e "${root}/.ruby-version" ]; then
|
||||
echo "${root}/.ruby-version"
|
||||
exit
|
||||
elif [ -e "${root}/.rbenv-version" ]; then
|
||||
echo "${root}/.rbenv-version"
|
||||
exit
|
||||
fi
|
||||
|
||||
@@ -13,10 +13,18 @@ if [ -z "$RBENV_VERSION" ] || [ "$RBENV_VERSION" = "system" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
RBENV_VERSION_PATH="${RBENV_ROOT}/versions/${RBENV_VERSION}"
|
||||
version_exists() {
|
||||
local version="$1"
|
||||
[ -d "${RBENV_ROOT}/versions/${version}" ]
|
||||
}
|
||||
|
||||
if [ -d "$RBENV_VERSION_PATH" ]; then
|
||||
if version_exists "$RBENV_VERSION"; then
|
||||
echo "$RBENV_VERSION"
|
||||
elif version_exists "${RBENV_VERSION#ruby-}"; then
|
||||
{ echo "warning: ignoring extraneous \`ruby-' prefix in version \`${RBENV_VERSION}'"
|
||||
echo " (set by $(rbenv-version-origin))"
|
||||
} >&2
|
||||
echo "${RBENV_VERSION#ruby-}"
|
||||
else
|
||||
echo "rbenv: version \`$RBENV_VERSION' is not installed" >&2
|
||||
exit 1
|
||||
|
||||
@@ -21,7 +21,7 @@ fi
|
||||
|
||||
print_version() {
|
||||
if [ "$1" == "$current_version" ]; then
|
||||
echo "${hit_prefix}$(rbenv-version)"
|
||||
echo "${hit_prefix}$(rbenv-version 2>/dev/null)"
|
||||
else
|
||||
echo "${miss_prefix}$1"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user