1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
#!/usr/bin/ruby -I/usr/share/apt-listbugs
require 'debian/apt_preferences'
p = Debian::AptPreferences.new
buf = ""
p.pins.each do |pin|
buf << " " + pin["Package"] if pin.listbugs?
end
pinnedpkgs = buf.split(' ')
$stderr.puts "Pinned: #{pinnedpkgs.sort.join(' ')}" if $DEBUG
bugpkgs = []
open("|/usr/sbin/apt-listbugs -y -q list #{buf}") { |io|
array = io.readlines()
if array.size != 0
buf = array[array.size-1].delete(' ').gsub(/\([^\)]+\)/,'').chomp
bugpkgs = buf.split(',')
end
}
if $?.exitstatus != 0
$stderr.puts "Error... exiting!" if $DEBUG
exit 1
end
$stderr.puts "Bugs: #{bugpkgs.sort.join(' ')}" if $DEBUG
if (pinnedpkgs - bugpkgs).size > 0
$stderr.puts "#{(pinnedpkgs - bugpkgs).join(', ')} has been fixed"
end
p.filter( bugpkgs )
|