| 1 |
#! /usr/bin/ruby1.8 -w
|
| 2 |
# Parse log files and extract info about packages that failed to build
|
| 3 |
# because of dependancies problems.
|
| 4 |
|
| 5 |
require 'collab-qa'
|
| 6 |
require 'optparse'
|
| 7 |
require 'soap/rpc/driver'
|
| 8 |
|
| 9 |
bts = SOAP::RPC::Driver::new('http://bugs.debian.org/cgi-bin/soap.cgi', '/Debbugs/SOAP')
|
| 10 |
bts.add_method('get_status', 'bugs')
|
| 11 |
bts.add_method('get_bugs', 'params')
|
| 12 |
bts.add_method('get_bug_log', 'params')
|
| 13 |
bts.add_method('get_usertag', 'email', 'tag')
|
| 14 |
bts.add_method('newest_bugs', 'num')
|
| 15 |
|
| 16 |
IO::read('ood_excuses.txt').each_line do |l|
|
| 17 |
pkg = l.split(' ')[0]
|
| 18 |
bugs = bts.get_bugs(['src', pkg])
|
| 19 |
status = bts.get_status(bugs)
|
| 20 |
if bugs.length > 0
|
| 21 |
status.each_pair do |k,v|
|
| 22 |
next if v.done != ''
|
| 23 |
next if v.subject !~ /ftbfs/i and v.subject !~ /piuparts/i and v.subject != /installation/i and v.subject != /(post|pre)(rm|inst)/i
|
| 24 |
puts "#{pkg} #{k} #{v.severity} #{v.subject}"
|
| 25 |
end
|
| 26 |
end
|
| 27 |
end
|