class Wright::Provider::Package::Homebrew
Homebrew
package provider. Used as a provider for {Resource::Package} on OS X systems.
Public Instance Methods
installed_versions()
click to toggle source
@return [Array<String>] the installed package versions
# File lib/wright/provider/package/homebrew.rb, line 14 def installed_versions cmd = 'brew' args = ['info', '--json=v1', package_name] cmd_stdout, _, cmd_status = Wright::Util.bundler_clean_env do Open3.capture3(env, cmd, *args) end if cmd_status.success? JSON[cmd_stdout].first['installed'].map { |v| v['version'] } else [] end end
Private Instance Methods
brew(action, package, version = nil)
click to toggle source
# File lib/wright/provider/package/homebrew.rb, line 38 def brew(action, package, version = nil) ignore_version(version) Wright::Util.bundler_clean_env do error_message = "cannot #{action} package '#{package}'" args = [action.to_s, *package_options, package] exec_or_fail('brew', args, error_message) end end
ignore_version(version)
click to toggle source
# File lib/wright/provider/package/homebrew.rb, line 48 def ignore_version(version) return unless version package_info = "#{package_name} (#{version})" Wright.log.warn "ignoring package version: '#{package_info}'" end
install_package()
click to toggle source
# File lib/wright/provider/package/homebrew.rb, line 30 def install_package brew(:install, package_name, package_version) end
remove_package()
click to toggle source
# File lib/wright/provider/package/homebrew.rb, line 34 def remove_package brew(:uninstall, package_name) end