diff options
-rw-r--r-- | lib/chef/provider/package/rubygems.rb | 2 | ||||
-rw-r--r-- | spec/unit/provider/package/rubygems_spec.rb | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/lib/chef/provider/package/rubygems.rb b/lib/chef/provider/package/rubygems.rb index b5f7dbdd80..729f755b2a 100644 --- a/lib/chef/provider/package/rubygems.rb +++ b/lib/chef/provider/package/rubygems.rb @@ -394,7 +394,7 @@ class Chef end def is_omnibus? - if RbConfig::CONFIG['bindir'] =~ %r!/opt/(opscode|chef)/embedded/bin! + if RbConfig::CONFIG['bindir'] =~ %r!/(opscode|chef|chefdk)/embedded/bin! Chef::Log.debug("#{@new_resource} detected omnibus installation in #{RbConfig::CONFIG['bindir']}") # Omnibus installs to a static path because of linking on unix, find it. true diff --git a/spec/unit/provider/package/rubygems_spec.rb b/spec/unit/provider/package/rubygems_spec.rb index 67ffb7bb9e..f790bdb1ce 100644 --- a/spec/unit/provider/package/rubygems_spec.rb +++ b/spec/unit/provider/package/rubygems_spec.rb @@ -369,6 +369,24 @@ describe Chef::Provider::Package::Rubygems do expect(provider.gem_env.gem_binary_location).to eq('/usr/weird/bin/gem') end + it "recognizes chef as omnibus" do + allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("/opt/chef/embedded/bin") + provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context) + expect(provider.is_omnibus?).to be true + end + + it "recognizes opscode as omnibus" do + allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("/opt/opscode/embedded/bin") + provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context) + expect(provider.is_omnibus?).to be true + end + + it "recognizes chefdk as omnibus" do + allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("/opt/chefdk/embedded/bin") + provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context) + expect(provider.is_omnibus?).to be true + end + it "searches for a gem binary when running on Omnibus on Unix" do platform_mock :unix do allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("/opt/chef/embedded/bin") |