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.
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/chef/mixin/homebrew.rb', line 38 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
54 55 56 57 |
# File 'lib/chef/mixin/homebrew.rb', line 54 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
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/chef/mixin/homebrew.rb', line 62 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 |