mirror of
https://github.com/ruby/ruby.git
synced 2025-08-25 05:55:46 +02:00
[rubygems/rubygems] Improve command suggestion when gems are missing
Previous attempt to use a full path when the running version is
different than the one that would be activated by default are different
was not correct.
This is because if this error happens in a `bundle exec` context, the
`Gem.loaded_specs` is cleared because we're in an exec'd process, so
will be always using a full path in these cases.
This alternative approach should do what I was expecting.
e0bb8bf51b
This commit is contained in:
parent
c8e9cd2b8b
commit
299eb8d117
1 changed files with 3 additions and 1 deletions
|
@ -12,7 +12,9 @@ if Bundler::SharedHelpers.in_bundle?
|
||||||
Bundler.ui.error e.message
|
Bundler.ui.error e.message
|
||||||
Bundler.ui.warn e.backtrace.join("\n") if ENV["DEBUG"]
|
Bundler.ui.warn e.backtrace.join("\n") if ENV["DEBUG"]
|
||||||
if e.is_a?(Bundler::GemNotFound)
|
if e.is_a?(Bundler::GemNotFound)
|
||||||
suggested_bundle = Gem.loaded_specs["bundler"] ? "bundle" : Bundler::SharedHelpers.bundle_bin_path
|
default_bundle = Gem.bin_path("bundler", "bundle")
|
||||||
|
current_bundle = Bundler::SharedHelpers.bundle_bin_path
|
||||||
|
suggested_bundle = default_bundle == current_bundle ? "bundle" : current_bundle
|
||||||
suggested_cmd = "#{suggested_bundle} install"
|
suggested_cmd = "#{suggested_bundle} install"
|
||||||
original_gemfile = Bundler.original_env["BUNDLE_GEMFILE"]
|
original_gemfile = Bundler.original_env["BUNDLE_GEMFILE"]
|
||||||
suggested_cmd += " --gemfile #{original_gemfile}" if original_gemfile
|
suggested_cmd += " --gemfile #{original_gemfile}" if original_gemfile
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue