Module: Chef::Mixin::Homebrew
- Includes:
- ShellOut
- Included in:
- Provider::Package::Homebrew, Resource::HomebrewCask, Resource::HomebrewTap, Resource::HomebrewUpdate
- Defined in:
- lib/chef/mixin/homebrew.rb
Instance Method Summary collapse
-
#find_homebrew_uid(provided_user = nil) ⇒ Integer
This tries to find the user to execute brew as.
-
#find_homebrew_username(provided_user = nil) ⇒ String
Use find_homebrew_uid to return the UID and then lookup the name from that UID because sometimes you want the name not the UID.
-
#homebrew_bin_path(brew_bin_path = nil) ⇒ String
Use homebrew_bin_path to return the path to the brew binary.
Instance Method Details
#find_homebrew_uid(provided_user = nil) ⇒ Integer
This tries to find the user to execute brew as. If a user is provided, that overrides the brew executable user. It is an error condition if the brew executable owner is root or we cannot find the brew executable.
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/chef/mixin/homebrew.rb', line 39 def find_homebrew_uid(provided_user = nil) # They could provide us a user name or a UID if provided_user return provided_user if provided_user.is_a? Integer return Etc.getpwnam(provided_user).uid end @homebrew_owner_uid ||= calculate_owner @homebrew_owner_uid end |
#find_homebrew_username(provided_user = nil) ⇒ String
Use find_homebrew_uid to return the UID and then lookup the name from that UID because sometimes you want the name not the UID
55 56 57 58 |
# File 'lib/chef/mixin/homebrew.rb', line 55 def find_homebrew_username(provided_user = nil) @homebrew_owner_username ||= Etc.getpwuid(find_homebrew_uid(provided_user)).name @homebrew_owner_username end |
#homebrew_bin_path(brew_bin_path = nil) ⇒ String
Use homebrew_bin_path to return the path to the brew binary
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/chef/mixin/homebrew.rb', line 63 def homebrew_bin_path(brew_bin_path = nil) if brew_bin_path && ::File.exist?(brew_bin_path) brew_bin_path else brew_path = which("brew", prepend_path: %w{/opt/homebrew/bin /usr/local/bin /home/linuxbrew/.linuxbrew/bin}) unless brew_path raise Chef::Exceptions::CannotDetermineHomebrewPath, 'Couldn\'t find the "brew" executable anywhere on the path.' end brew_path end end |