in lib/puppet/provider/package/brew.rb [169:208]
def self.package_list(options={})
Puppet.debug "Listing installed packages"
cmd_line = [command(:brew), :list, '--versions']
if options[:justme]
cmd_line += [ options[:justme] ]
end
begin
cmd_output = execute(cmd_line)
rescue Puppet::ExecutionFailure => detail
raise Puppet::Error, "Could not list packages: #{detail}"
end
re_excludes = Regexp.union([
/^==>.*/,
/^Tapped \d+ formulae.*/,
])
lines = cmd_output.lines.delete_if { |line| line.match(re_excludes) }
if options[:justme]
if lines.empty?
Puppet.debug "Package #{options[:justme]} not installed"
return nil
else
if lines.length > 1
Puppet.warning "Multiple matches for package #{options[:justme]} - using first one found"
end
line = lines.shift
Puppet.debug "Found package #{line}"
return name_version_split(line)
end
else
return lines.map{ |l| name_version_split(l) }
end
end