#!/usr/bin/env python # Dumps the Ubuntu-Descriptions in a form suitable for a USN announcement import sys, deb822 def wrap(text, width): """ A word-wrap function that preserves existing line breaks and most spaces in the text. Expects that existing line breaks are posix newlines (\n). """ return reduce(lambda line, word, width=width: '%s%s%s' % (line, ' \n'[(len(line)-line.rfind('\n')-1 + len(word.split('\n',1)[0] ) >= width)], word), text.split(' ') ) for cve in sys.argv[1:]: desc = deb822.deb822(file(cve))['Ubuntu-Description'].strip() if len(sys.argv[1:])!=1: desc += " (%s)"%cve print print wrap(desc,75)