diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ebeb70f..e8d7114 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: issues: write integration: - needs: "lint-unit" +# needs: "lint-unit" runs-on: macos-latest strategy: matrix: diff --git a/CHANGELOG.md b/CHANGELOG.md index 44ca996..6b10cda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ This file is used to list changes made in each version of the homebrew cookbook. ## Unreleased +- Updated library call for new homebrew class name + ## 5.4.9 - *2024-11-18* Standardise files with files in sous-chefs/repo-management diff --git a/libraries/helpers.rb b/libraries/helpers.rb index 79d8dcb..c77cb93 100644 --- a/libraries/helpers.rb +++ b/libraries/helpers.rb @@ -20,8 +20,10 @@ # class HomebrewUserWrapper - require 'chef/mixin/homebrew_user' - include Chef::Mixin::HomebrewUser + require 'chef/mixin/homebrew' + include Chef::Mixin::Homebrew + # require Chef::VERSION >= Chef::Version.new('18.6.2') ? 'chef/mixin/homebrew' : 'chef/mixin/homebrew_user' + # include Chef::VERSION >= Chef::Version.new('18.6.2') ? Chef::Mixin::Homebrew : Chef::Mixin::HomebrewUser include Chef::Mixin::Which end @@ -60,41 +62,41 @@ def exist? def owner @owner ||= begin - # once we only support 14.0 we can switch this to find_homebrew_username - require 'etc' - ::Etc.getpwuid(HomebrewUserWrapper.new.find_homebrew_uid).name - rescue Chef::Exceptions::CannotDetermineHomebrewOwner - calculate_owner - end.tap do |owner| - Chef::Log.debug("Homebrew owner is #{owner}") - end - end - - private - - def calculate_owner - owner = homebrew_owner_attr || sudo_user || current_user - if owner == 'root' - raise Chef::Exceptions::User, - "Homebrew owner is 'root' which is not supported. " \ - "To set an explicit owner, please set node['homebrew']['owner']." - end - owner + HomebrewUserWrapper.new.find_homebrew_username + rescue + Chef::Exceptions::CannotDetermineHomebrewPath + end.tap do |owner| + Chef::Log.debug("Homebrew owner is #{owner}") + end end - def homebrew_owner_attr - Chef.node['homebrew']['owner'] - end - - def sudo_user - ENV['SUDO_USER'] - end - - def current_user - ENV['USER'] - end + # private + # + # def calculate_owner + # owner = homebrew_owner_attr || sudo_user || current_user + # if owner == 'root' + # raise Chef::Exceptions::User, + # "Homebrew owner is 'root' which is not supported. " \ + # "To set an explicit owner, please set node['homebrew']['owner']." + # end + # owner + # end + # + # def homebrew_owner_attr + # Chef.node['homebrew']['owner'] + # end + # + # def sudo_user + # ENV['SUDO_USER'] + # end + # + # def current_user + # ENV['USER'] + # end end unless defined?(Homebrew) class HomebrewWrapper include Homebrew end + +Chef::Mixin::Homebrew.include(Homebrew) diff --git a/resources/cask.rb b/resources/cask.rb index c4d2053..f66fc8f 100644 --- a/resources/cask.rb +++ b/resources/cask.rb @@ -19,6 +19,7 @@ # limitations under the License. # +unified_mode true chef_version_for_provides '< 14.0' if respond_to?(:chef_version_for_provides) property :cask_name, String, regex: %r{^[\w/-]+$}, name_property: true diff --git a/resources/tap.rb b/resources/tap.rb index 8f67124..dc7f329 100644 --- a/resources/tap.rb +++ b/resources/tap.rb @@ -19,6 +19,7 @@ # limitations under the License. # +unified_mode true chef_version_for_provides '< 14.0' if respond_to?(:chef_version_for_provides) property :tap_name, String, name_property: true, regex: %r{^[\w-]+(?:\/[\w-]+)+$} diff --git a/spec/recipes/cask_spec.rb b/spec/recipes/cask_spec.rb index 2fa5aa0..d8ada3e 100644 --- a/spec/recipes/cask_spec.rb +++ b/spec/recipes/cask_spec.rb @@ -7,7 +7,7 @@ end before(:each) do - allow(Homebrew).to receive(:owner).and_return('vagrant') + allow_any_instance_of(HomebrewUserWrapper).to receive(:find_homebrew_username).and_return('vagrant') end it 'manages the Cask Cache directory' do diff --git a/spec/recipes/default_spec.rb b/spec/recipes/default_spec.rb index 229a54d..582325c 100644 --- a/spec/recipes/default_spec.rb +++ b/spec/recipes/default_spec.rb @@ -8,7 +8,7 @@ end allow(Homebrew).to receive(:exist?).and_return(true) - allow(Homebrew).to receive(:owner).and_return('vagrant') + allow_any_instance_of(HomebrewUserWrapper).to receive(:find_homebrew_username).and_return('vagrant') stub_command('which git').and_return(true) end @@ -40,7 +40,7 @@ end before do - allow_any_instance_of(Chef::Mixin::HomebrewUser).to receive(:find_homebrew_uid).and_return(Process.uid) + allow_any_instance_of(Chef::Mixin::Homebrew).to receive(:find_homebrew_uid).and_return(Process.uid) end it 'does not run homebrew installation' do diff --git a/spec/recipes/install_formulas_spec.rb b/spec/recipes/install_formulas_spec.rb index feb2f1c..1f7982f 100644 --- a/spec/recipes/install_formulas_spec.rb +++ b/spec/recipes/install_formulas_spec.rb @@ -12,7 +12,7 @@ allow(resource).to receive_shell_out('/usr/local/bin/brew analytics state', user: 'vagrant') end stub_command('which git').and_return('/usr/local/bin/git') - allow(Homebrew).to receive(:owner).and_return('vagrant') + allow_any_instance_of(HomebrewUserWrapper).to receive(:find_homebrew_username).and_return('vagrant') allow(Homebrew).to receive(:exist?).and_return(true) end