chiark / gitweb /
Sigh. Make these four executable too.
[bin.git] / verify-status.pl
1 #! /usr/bin/perl -w
2 use diagnostics;
3 use strict;
4
5 local (*AVAILABLE, *STATUS);
6 open AVAILABLE, '</var/lib/dpkg/available' or
7         die "Can't open available file: $!";
8 open STATUS, '</var/lib/dpkg/status' or die "Can't open status file: $!";
9
10 my (%available, %status);
11 my $package;
12
13 while (<AVAILABLE>)
14 {
15         if (/^Package: (.*)/)
16         {
17                 $package = $1;
18         }
19         elsif (/^Version: (.*)/)
20         {
21                 $available{$package} = $1;
22                 undef $package;
23         }
24 }
25
26 while (<STATUS>)
27 {
28         if (/^Package: (.*)/)
29         {
30                 $package = $1;
31         }
32         elsif (/^Version: (.*)/)
33         {
34                 $status{$package} = $1;
35                 undef $package;
36         }
37 }
38
39 close STATUS;
40 close AVAILABLE;
41
42 foreach my $package (sort keys %available)
43 {
44         if (defined $status{$package})
45         {
46                 print "!!! " if $available{$package} ne $status{$package};
47                 print "$package $available{$package} $status{$package}\n";
48         }
49 }
50