Below is the file 'client/plugins/softwareupdate.py' from this revision. You can also download the file.
from phonehome import urgency import os, sys, re def run(): results = [] software_update_prog = "/usr/sbin/softwareupdate" if not os.access(software_update_prog, os.X_OK): return [(urgency['info'], 'softwareupdate not available (not a Mac, or not >= 10.5)')] update_re = re.compile(r'^\s*\* (.*)$') descr_re = re.compile(r'^\t(.*)$') fd = os.popen("%s --list" % software_update_prog) descr_for = None updates = {} for line in fd: m = update_re.match(line) if m: descr_for = m.groups()[0] updates[descr_for] = None continue m = descr_re.match(line) if m: if descr_for is None: result.append((urgency['alert'], 'something wrong with parser, description with no package.')) else: updates[descr_for] = m.groups()[0] update_names = updates.keys() update_names.sort() for name in update_names: descr = updates[name] if descr is None: results.append((urgency['alert'], '%s (no description found [parser problem?])' % name)) else: if descr.find('[recommended]') != -1: urgency_str = 'alert' else: urgency_str = 'warning' results.append((urgency[urgency_str], descr)) return results