Commit 311d96f7 by Mislav Marohnić

Fix `rbenv install --list` for definitions auto-discovery

The build definitions auto-discovered from rbenv plugins would
previously not appear in `--list` results due to discovery process
taking place too late.
parent f8015da3
...@@ -51,6 +51,15 @@ indent() { ...@@ -51,6 +51,15 @@ indent() {
sed 's/^/ /' sed 's/^/ /'
} }
# Add `share/ruby-build/` directory from each rbenv plugin to the list of
# paths where build definitions are looked up.
shopt -s nullglob
for plugin_path in "$RBENV_ROOT"/plugins/*/share/ruby-build; do
RUBY_BUILD_DEFINITIONS="${RUBY_BUILD_DEFINITIONS}:${plugin_path}"
done
export RUBY_BUILD_DEFINITIONS
shopt -u nullglob
unset FORCE unset FORCE
unset SKIP_EXISTING unset SKIP_EXISTING
unset KEEP unset KEEP
...@@ -162,15 +171,6 @@ if [ -z "${RUBY_BUILD_CACHE_PATH}" ] && [ -d "${RBENV_ROOT}/cache" ]; then ...@@ -162,15 +171,6 @@ if [ -z "${RUBY_BUILD_CACHE_PATH}" ] && [ -d "${RBENV_ROOT}/cache" ]; then
export RUBY_BUILD_CACHE_PATH="${RBENV_ROOT}/cache" export RUBY_BUILD_CACHE_PATH="${RBENV_ROOT}/cache"
fi fi
# Add `share/ruby-build/` directory from each rbenv plugin to the list of
# paths where build definitions are looked up.
shopt -s nullglob
for plugin_path in "$RBENV_ROOT"/plugins/*/share/ruby-build; do
RUBY_BUILD_DEFINITIONS="${RUBY_BUILD_DEFINITIONS}:${plugin_path}"
done
export RUBY_BUILD_DEFINITIONS
shopt -u nullglob
# Default RBENV_VERSION to the globally-specified Ruby version. (The # Default RBENV_VERSION to the globally-specified Ruby version. (The
# REE installer requires an existing Ruby installation to run. An # REE installer requires an existing Ruby installation to run. An
# unsatisfied local .ruby-version file can cause the installer to # unsatisfied local .ruby-version file can cause the installer to
......
...@@ -95,3 +95,18 @@ ${RBENV_ROOT}/plugins/bar/share/ruby-build ...@@ -95,3 +95,18 @@ ${RBENV_ROOT}/plugins/bar/share/ruby-build
${RBENV_ROOT}/plugins/foo/share/ruby-build ${RBENV_ROOT}/plugins/foo/share/ruby-build
OUT OUT
} }
@test "list build definitions from plugins" {
mkdir -p "${RBENV_ROOT}/plugins/foo/share/ruby-build"
mkdir -p "${RBENV_ROOT}/plugins/bar/share/ruby-build"
stub_ruby_build "--definitions : echo \$RUBY_BUILD_DEFINITIONS | tr ':' $'\\n'"
run rbenv-install --list
assert_success
assert_output <<OUT
Available versions:
${RBENV_ROOT}/plugins/bar/share/ruby-build
${RBENV_ROOT}/plugins/foo/share/ruby-build
OUT
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment