77: def self.pkglist(hash = {})
78: cmd = [command(:lslpp), "-qLc"]
79:
80: if name = hash[:pkgname]
81: cmd << name
82: end
83:
84: begin
85: list = execute(cmd).scan(/^[^#][^:]*:([^:]*):([^:]*)/).collect { |n,e|
86: { :name => n, :ensure => e, :provider => self.name }
87: }
88: rescue Puppet::ExecutionFailure => detail
89: if hash[:pkgname]
90: return nil
91: else
92: raise Puppet::Error, "Could not list installed Packages: #{detail}"
93: end
94: end
95:
96: if hash[:pkgname]
97: return list.shift
98: else
99: return list
100: end
101: end