74: def get_version
75: execpipe([command(:pkginfo), " -I ", @resource[:name]]) do |process|
76:
77: regex = /^(.*)-(\d[^-]*)[-]?(\D*)(.*)$/
78: fields = [ :name, :version, :flavor ]
79: master_version = 0
80:
81: process.each do |line|
82: if match = regex.match(line.split[0])
83:
84: version = match.captures[1]
85: return version unless @resource[:ensure] == "latest"
86:
87: master_version = version unless master_version > version
88: end
89: end
90:
91: return master_version unless master_version == 0
92: raise Puppet::Error, "#{version} is not available for this package"
93: end
94: rescue Puppet::ExecutionFailure
95: return nil
96: end