mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-21 20:47:00 -05: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
|
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
|
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_VERSION` environment variable.
|
||||||
|
|
||||||
$ rbenv global 1.9.3-p327
|
$ rbenv global 1.9.3-p327
|
||||||
|
@ -244,7 +244,7 @@ currently configured global version.
|
||||||
### rbenv local ###
|
### rbenv local ###
|
||||||
|
|
||||||
Sets a local per-project Ruby version by writing the version name to
|
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
|
overrides the global, and can be overridden itself by setting the
|
||||||
`RBENV_VERSION` environment variable or with the `rbenv shell`
|
`RBENV_VERSION` environment variable or with the `rbenv shell`
|
||||||
command.
|
command.
|
||||||
|
@ -256,6 +256,11 @@ configured local version. You can also unset the local version:
|
||||||
|
|
||||||
$ rbenv local --unset
|
$ 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 ###
|
### rbenv shell ###
|
||||||
|
|
||||||
Sets a shell-specific Ruby version by setting the `RBENV_VERSION`
|
Sets a shell-specific Ruby version by setting the `RBENV_VERSION`
|
||||||
|
@ -284,7 +289,7 @@ the currently active version.
|
||||||
$ rbenv versions
|
$ rbenv versions
|
||||||
1.8.7-p352
|
1.8.7-p352
|
||||||
1.9.2-p290
|
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
|
jruby-1.7.1
|
||||||
rbx-1.2.4
|
rbx-1.2.4
|
||||||
ree-1.8.7-2011.03
|
ree-1.8.7-2011.03
|
||||||
|
@ -295,7 +300,7 @@ Displays the currently active Ruby version, along with information on
|
||||||
how it was set.
|
how it was set.
|
||||||
|
|
||||||
$ rbenv version
|
$ 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 ###
|
### rbenv rehash ###
|
||||||
|
|
||||||
|
|
|
@ -6,14 +6,18 @@
|
||||||
# rbenv local --unset
|
# rbenv local --unset
|
||||||
#
|
#
|
||||||
# Sets the local directory-specific Ruby version by writing the version
|
# 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 in the current directory and each parent directory. If no such
|
||||||
# file is found in the tree, rbenv will use the global Ruby version
|
# file is found in the tree, rbenv will use the global Ruby version
|
||||||
# specified with `rbenv global', or the version specified in the
|
# specified with `rbenv global', or the version specified in the
|
||||||
# RBENV_VERSION environment variable.
|
# 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.
|
# <version> should be a string matching a Ruby version known to rbenv.
|
||||||
# The special version string `system' will use your default system Ruby.
|
# The special version string `system' will use your default system Ruby.
|
||||||
# Run `rbenv versions' for a list of available Ruby versions.
|
# Run `rbenv versions' for a list of available Ruby versions.
|
||||||
|
@ -29,14 +33,20 @@ if [ "$1" = "--complete" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RBENV_VERSION="$1"
|
RBENV_VERSION="$1"
|
||||||
RBENV_VERSION_FILE=".rbenv-version"
|
|
||||||
|
|
||||||
if [ "$RBENV_VERSION" = "--unset" ]; then
|
if [ "$RBENV_VERSION" = "--unset" ]; then
|
||||||
rm -f "$RBENV_VERSION_FILE"
|
rm -f .ruby-version .rbenv-version
|
||||||
elif [ -n "$RBENV_VERSION" ]; then
|
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
|
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"
|
{ echo "rbenv: no local version configured for this directory"
|
||||||
exit 1
|
exit 1
|
||||||
} >&2
|
} >&2
|
||||||
|
|
|
@ -6,7 +6,10 @@ set -e
|
||||||
find_local_version_file() {
|
find_local_version_file() {
|
||||||
local root="$1"
|
local root="$1"
|
||||||
while [ -n "$root" ]; do
|
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"
|
echo "${root}/.rbenv-version"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -13,10 +13,18 @@ if [ -z "$RBENV_VERSION" ] || [ "$RBENV_VERSION" = "system" ]; then
|
||||||
exit
|
exit
|
||||||
fi
|
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"
|
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
|
else
|
||||||
echo "rbenv: version \`$RBENV_VERSION' is not installed" >&2
|
echo "rbenv: version \`$RBENV_VERSION' is not installed" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -21,7 +21,7 @@ fi
|
||||||
|
|
||||||
print_version() {
|
print_version() {
|
||||||
if [ "$1" == "$current_version" ]; then
|
if [ "$1" == "$current_version" ]; then
|
||||||
echo "${hit_prefix}$(rbenv-version)"
|
echo "${hit_prefix}$(rbenv-version 2>/dev/null)"
|
||||||
else
|
else
|
||||||
echo "${miss_prefix}$1"
|
echo "${miss_prefix}$1"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue