diff --git a/lib/bundler/gem_helper.rb b/lib/bundler/gem_helper.rb index 8e1dd7c4f2..01101205e3 100644 --- a/lib/bundler/gem_helper.rb +++ b/lib/bundler/gem_helper.rb @@ -98,9 +98,9 @@ module Bundler built_gem_path ||= build_gem cmd = [*gem_command, "install", built_gem_path.to_s] cmd << "--local" if local - _, status = sh_with_status(cmd) + out, status = sh_with_status(cmd) unless status.success? - raise "Couldn't install gem, run `gem install #{built_gem_path}' for more detailed output" + raise("Running `#{cmd}` failed with the following output:\n\n#{out}\n") end Bundler.ui.confirm "#{name} (#{version}) installed." end @@ -219,7 +219,7 @@ module Bundler out, status = sh_with_status(cmd, &block) unless status.success? cmd = cmd.shelljoin if cmd.respond_to?(:shelljoin) - raise(out.empty? ? "Running `#{cmd}` failed. Run this command directly for more detailed output." : out) + raise("Running `#{cmd}` failed with the following output:\n\n#{out}\n") end out end diff --git a/spec/bundler/bundler/gem_helper_spec.rb b/spec/bundler/bundler/gem_helper_spec.rb index 6c3ac3e035..2c43719aa1 100644 --- a/spec/bundler/bundler/gem_helper_spec.rb +++ b/spec/bundler/bundler/gem_helper_spec.rb @@ -219,7 +219,7 @@ RSpec.describe Bundler::GemHelper do FileUtils.touch app_gem_path app_gem_path end - expect { subject.install_gem }.to raise_error(/Couldn't install gem/) + expect { subject.install_gem }.to raise_error(/Running `#{gem_bin} install #{app_gem_path}` failed/) end end end