Cleanup via rubocop of ruby code
[puppet-modules/puppetlabs-apt.git] / lib / facter / apt_updates.rb
1 apt_package_updates = nil
2 Facter.add('apt_has_updates') do
3   confine osfamily: 'Debian'
4   if File.executable?('/usr/bin/apt-get')
5     apt_get_result = Facter::Util::Resolution.exec('/usr/bin/apt-get -s -o Debug::NoLocking=true upgrade 2>&1')
6     unless apt_get_result.nil?
7       apt_package_updates = [[], []]
8       apt_get_result.each_line do |line|
9         next unless line =~ %r{^Inst\s}
10         package = line.gsub(%r{^Inst\s([^\s]+)\s.*}, '\1').strip
11         apt_package_updates[0].push(package)
12         security_matches = [
13           %r{ Debian[^\s]+-updates[, ]},
14           %r{ Debian-Security:},
15           %r{ Ubuntu[^\s]+-security[, ]},
16           %r{ gNewSense[^\s]+-security[, ]},
17         ]
18         re = Regexp.union(security_matches)
19         if line.match(re)
20           apt_package_updates[1].push(package)
21         end
22       end
23     end
24   end
25
26   setcode do
27     if !apt_package_updates.nil? && apt_package_updates.length == 2
28       apt_package_updates != [[], []]
29     end
30   end
31 end
32
33 Facter.add('apt_package_updates') do
34   confine apt_has_updates: true
35   setcode do
36     if Facter.version < '2.0.0'
37       apt_package_updates[0].join(',')
38     else
39       apt_package_updates[0]
40     end
41   end
42 end
43
44 Facter.add('apt_package_security_updates') do
45   confine apt_has_updates: true
46   setcode do
47     if Facter.version < '2.0.0'
48       apt_package_updates[1].join(',')
49     else
50       apt_package_updates[1]
51     end
52   end
53 end
54
55 Facter.add('apt_updates') do
56   confine apt_has_updates: true
57   setcode do
58     Integer(apt_package_updates[0].length)
59   end
60 end
61
62 Facter.add('apt_security_updates') do
63   confine apt_has_updates: true
64   setcode do
65     Integer(apt_package_updates[1].length)
66   end
67 end