check.d/50.updates: Maintain sets of packages, rather than lists.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 10 May 2015 10:13:30 +0000 (11:13 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 10 May 2015 10:13:30 +0000 (11:13 +0100)
check.d/50.updates

index 9eb27a4..0444fa1 100755 (executable)
@@ -26,9 +26,9 @@ def cache_up_to_date_p():
   return now - last < 86400
 
 def upgradable_packages():
-  """Return a list of packages for which updates are available."""
+  """Return a set of packages for which updates are available."""
   cache = AC.Cache()
-  return [pkg for pkg in cache if pkg.is_upgradable]
+  return set([pkg for pkg in cache if pkg.is_upgradable])
 
 def security_updates_p(pkg):
   """Answer whether any update for PKG is security-relevant."""
@@ -59,7 +59,7 @@ if updates:
   plural = len(updates) != 1
   print 'I: updates available for %d %s' % \
         (len(updates), plural and 'packages' or 'package')
-sec = [pkg for pkg in updates if security_updates_p(pkg)]
+sec = set(pkg for pkg in updates if security_updates_p(pkg))
 if sec:
   plural = len(sec) != 1
   print 'W: security updates available for %d %s' % \