зеркало из https://github.com/github/ruby.git
[bundler/bundler] Fix `bundle doctor` command
Previously `bundle doctor` would fail on any bundle that does not include git gems or plugins. This is because the previously used `Bundler.home` does not exist unless the bundle includes git gems or plugins. For example, with `bundle config set path .bundle`, it points to which does not exist unless this kind of gems exist in the Gemfile. The name `Bundler.home` is really unfortunate, it should probably be have more descriptive name, and be private. But for now I just want to make `bundle doctor` usable. https://github.com/bundler/bundler/commit/5531a18c1e
This commit is contained in:
Родитель
a02dbcecb1
Коммит
cc644c7116
|
@ -100,7 +100,7 @@ module Bundler
|
|||
files_not_readable_or_writable = []
|
||||
files_not_rw_and_owned_by_different_user = []
|
||||
files_not_owned_by_current_user_but_still_rw = []
|
||||
Find.find(Bundler.home.to_s).each do |f|
|
||||
Find.find(Bundler.bundle_path.to_s).each do |f|
|
||||
if !File.writable?(f) || !File.readable?(f)
|
||||
if File.stat(f).uid != Process.uid
|
||||
files_not_rw_and_owned_by_different_user << f
|
||||
|
|
|
@ -22,11 +22,17 @@ RSpec.describe "bundle doctor" do
|
|||
end
|
||||
end
|
||||
|
||||
it "succeeds on a sane installation" do
|
||||
bundle :doctor
|
||||
|
||||
expect(exitstatus).to eq(0)
|
||||
end
|
||||
|
||||
context "when all files in home are readable/writable" do
|
||||
before(:each) do
|
||||
stat = double("stat")
|
||||
unwritable_file = double("file")
|
||||
allow(Find).to receive(:find).with(Bundler.home.to_s) { [unwritable_file] }
|
||||
allow(Find).to receive(:find).with(Bundler.bundle_path.to_s) { [unwritable_file] }
|
||||
allow(File).to receive(:stat).with(unwritable_file) { stat }
|
||||
allow(stat).to receive(:uid) { Process.uid }
|
||||
allow(File).to receive(:writable?).with(unwritable_file) { true }
|
||||
|
@ -66,7 +72,7 @@ RSpec.describe "bundle doctor" do
|
|||
before(:each) do
|
||||
@stat = double("stat")
|
||||
@unwritable_file = double("file")
|
||||
allow(Find).to receive(:find).with(Bundler.home.to_s) { [@unwritable_file] }
|
||||
allow(Find).to receive(:find).with(Bundler.bundle_path.to_s) { [@unwritable_file] }
|
||||
allow(File).to receive(:stat).with(@unwritable_file) { @stat }
|
||||
end
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче