File: aptcleanup

package info (click to toggle)
apt-listbugs 0.0.89
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 776 kB
  • ctags: 55
  • sloc: ruby: 1,532; sh: 174; makefile: 49
file content (29 lines) | stat: -rwxr-xr-x 768 bytes parent folder | download
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 )