44: def latest
45: output = aptcache :showpkg, @resource[:name]
46:
47: if output =~ /Versions:\s*\n((\n|.)+)^$/
48: versions = $1
49: available_versions = versions.split(/\n/).collect { |version|
50: if version =~ /^([^\(]+)\(/
51: $1
52: else
53: self.warning "Could not match version '%s'" % version
54: nil
55: end
56: }.reject { |vers| vers.nil? }.sort { |a,b|
57: versioncmp(a,b)
58: }
59:
60: if available_versions.length == 0
61: self.debug "No latest version"
62: if Puppet[:debug]
63: print output
64: end
65: end
66:
67:
68: return available_versions.pop
69: else
70: self.err "Could not match string"
71: end
72: end