# File lib/puppet/provider/package/aix.rb, line 24
24:   def self.prefetch(packages)
25:     raise Puppet::Error, "The aix provider can only be used by root" if Process.euid != 0
26: 
27:     return unless packages.detect { |name, package| package.should(:ensure) == :latest }
28: 
29:     sources = packages.collect { |name, package| package[:source] }.uniq
30: 
31:     updates = {}
32:     sources.each do |source|
33:       execute(self.srclistcmd(source)).each do |line|
34:         if line =~ /^[^#][^:]*:([^:]*):([^:]*)/
35:           current = {}
36:           current[:name]    = $1
37:           current[:version] = $2
38:           current[:source]  = source
39: 
40:           if updates.key?(current[:name])
41:             previous = updates[current[:name]]
42: 
43:             updates[ current[:name] ] = current unless Puppet::Util::Package.versioncmp(previous[:version], current[:version]) == 1
44: 
45:           else
46:             updates[current[:name]] = current
47:           end
48:         end
49:       end
50:     end
51: 
52:     packages.each do |name, package|
53:       if info = updates[package[:name]]
54:         package.provider.latest_info = info[0]
55:       end
56:     end
57:   end