mirror of
https://github.com/pyenv/pyenv.git
synced 2024-12-22 20:23:41 +00:00
Merge pull request #302 from sstephenson/ruby-version
Support for .ruby-version files
This commit is contained in:
commit
80750f730f
5 changed files with 40 additions and 14 deletions
13
README.md
13
README.md
|
@ -230,7 +230,7 @@ first argument. The most common subcommands are:
|
|||
|
||||
Sets the global version of Ruby to be used in all shells by writing
|
||||
the version name to the `~/.rbenv/version` file. This version can be
|
||||
overridden by a per-project `.rbenv-version` file, or by setting the
|
||||
overridden by a per-project `.ruby-version` file, or by setting the
|
||||
`RBENV_VERSION` environment variable.
|
||||
|
||||
$ rbenv global 1.9.3-p327
|
||||
|
@ -244,7 +244,7 @@ currently configured global version.
|
|||
### rbenv local ###
|
||||
|
||||
Sets a local per-project Ruby version by writing the version name to
|
||||
an `.rbenv-version` file in the current directory. This version
|
||||
a `.ruby-version` file in the current directory. This version
|
||||
overrides the global, and can be overridden itself by setting the
|
||||
`RBENV_VERSION` environment variable or with the `rbenv shell`
|
||||
command.
|
||||
|
@ -256,6 +256,11 @@ configured local version. You can also unset the local version:
|
|||
|
||||
$ rbenv local --unset
|
||||
|
||||
Previous versions of rbenv stored local version specifications in a
|
||||
file named `.rbenv-version`. For backwards compatibility, rbenv will
|
||||
read a local version specified in an `.rbenv-version` file, but a
|
||||
`.ruby-version` file in the same directory will take precedence.
|
||||
|
||||
### rbenv shell ###
|
||||
|
||||
Sets a shell-specific Ruby version by setting the `RBENV_VERSION`
|
||||
|
@ -284,7 +289,7 @@ the currently active version.
|
|||
$ rbenv versions
|
||||
1.8.7-p352
|
||||
1.9.2-p290
|
||||
* 1.9.3-p327 (set by /Users/sam/.rbenv/global)
|
||||
* 1.9.3-p327 (set by /Users/sam/.rbenv/version)
|
||||
jruby-1.7.1
|
||||
rbx-1.2.4
|
||||
ree-1.8.7-2011.03
|
||||
|
@ -295,7 +300,7 @@ Displays the currently active Ruby version, along with information on
|
|||
how it was set.
|
||||
|
||||
$ rbenv version
|
||||
1.8.7-p352 (set by /Volumes/37signals/basecamp/.rbenv-version)
|
||||
1.8.7-p352 (set by /Volumes/37signals/basecamp/.ruby-version)
|
||||
|
||||
### rbenv rehash ###
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue