diff options
-rw-r--r-- | lib/bundler/plugin/index.rb | 7 | ||||
-rw-r--r-- | spec/bundler/plugin/index_spec.rb | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/bundler/plugin/index.rb b/lib/bundler/plugin/index.rb index 8dde072f16..770a98de3a 100644 --- a/lib/bundler/plugin/index.rb +++ b/lib/bundler/plugin/index.rb @@ -29,7 +29,12 @@ module Bundler @hooks = {} @load_paths = {} - load_index(global_index_file, true) + begin + load_index(global_index_file, true) + rescue GenericSystemCallError + # no need to fail when on a read-only FS, for example + nil + end load_index(local_index_file) if SharedHelpers.in_bundle? end diff --git a/spec/bundler/plugin/index_spec.rb b/spec/bundler/plugin/index_spec.rb index 163b563b2a..ca3476ea2a 100644 --- a/spec/bundler/plugin/index_spec.rb +++ b/spec/bundler/plugin/index_spec.rb @@ -175,4 +175,12 @@ RSpec.describe Bundler::Plugin::Index do include_examples "it cleans up" end end + + describe "readonly disk without home" do + it "ignores being unable to create temp home dir" do + expect_any_instance_of(Bundler::Plugin::Index).to receive(:global_index_file). + and_raise(Bundler::GenericSystemCallError.new("foo", "bar")) + Bundler::Plugin::Index.new + end + end end |