X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=lib%2Ffacter%2Fapt_updates.rb;h=014782eab2edaa33c5f29f79bac19d81a901d7da;hb=c4899127eed50ef0998061f5a66d855f355b2109;hp=15d9473d6e63716cfd9048775bc8ca82a6857bdb;hpb=4d9d9e126ef84ca0f08ea0831036f4d9f829e935;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/lib/facter/apt_updates.rb b/lib/facter/apt_updates.rb index 15d9473..014782e 100644 --- a/lib/facter/apt_updates.rb +++ b/lib/facter/apt_updates.rb @@ -1,9 +1,42 @@ -Facter.add("apt_updates") do +apt_package_updates = nil +Facter.add("apt_has_updates") do confine :osfamily => 'Debian' + if File.executable?("/usr/lib/update-notifier/apt-check") + apt_check_result = Facter::Util::Resolution.exec('/usr/lib/update-notifier/apt-check 2>&1') + if not apt_check_result.nil? and apt_check_result =~ /^\d+;\d+$/ + apt_package_updates = apt_check_result.split(';') + end + end + + setcode do + if not apt_package_updates.nil? and apt_package_updates.length == 2 + apt_package_updates != ['0', '0'] + end + end +end + +Facter.add("apt_package_updates") do + confine :apt_has_updates => true setcode do - if File.executable?("/usr/lib/update-notifier/apt-check") - updates = Facter::Util::Resolution.exec('/usr/lib/update-notifier/apt-check 2>/dev/null') - Integer(updates.strip.split(';')[0]) + packages = Facter::Util::Resolution.exec('/usr/lib/update-notifier/apt-check -p 2>&1').split("\n") + if Facter.version < '2.0.0' + packages.join(',') + else + packages end end end + +Facter.add("apt_updates") do + confine :apt_has_updates => true + setcode do + Integer(apt_package_updates[0]) + end +end + +Facter.add("apt_security_updates") do + confine :apt_has_updates => true + setcode do + Integer(apt_package_updates[1]) + end +end