]> git.decadent.org.uk Git - dak.git/blob - direport
sync
[dak.git] / direport
1 #!/usr/bin/perl
2
3 @t = ('BYHAND', 'CONFIRM', 'NEW', 'REJECT', 'INSTALL', 'SKIP');
4
5 $/="";
6 IR: while (<>) {
7   for $i (1..$#t) {
8     if (/^$t[$i]/m) {
9       $data[$i] .= "$_\n";
10       $cnt[$i]++;
11       
12       if ($t[$i] eq "NEW") {
13         ($dist) = (/^NEW to (.*)/m);
14         while (/^\(new\) ([^_]*)_\S* (\S*) (\S*)$/mg) {
15           ($n,$p,$s) = ($1,$2,$3);
16           $p = "?" if (!$p);
17           $s = "?" if (!$s);
18           $s = "non-free/$p" if ($dist=~'non-free' && $s!~'non-free');
19           $s = "contrib/$p" if ($dist=~'contrib' && $s!~'contrib');
20           $l = length($n)>15 ? 30-length($n) : 15;
21           for $d (split(/, /,$dist)) {
22             $d.='-contrib' if ($s =~ 'contrib' && $d!~'contrib');
23             $d.='-non-free' if ($s =~ 'non-free' && $d!~'non-free');
24             $override{$d} .= sprintf("%-15s %-${l}s %s\n", $n, $p, $s)
25               if (!$over{$n});
26             $over{$n} = 1;
27           }
28         }
29       }
30         
31       next IR;
32     }
33   }
34   $data[0] .= "$_\n";
35   $cnt[$i]++;
36 }
37
38 for $i (0..$#t) {
39   print "-"x40, "\n$cnt[$i] $t[$i]\n", "-"x40, "\n$data[$i]" if $cnt[$i];
40 }
41 print "-"x40, "\nOVERRIDE ADDITIONS\n", "-"x40,"\n";
42 for $d (sort keys %override) {
43   print "-"x5," $d\n$override{$d}\n\n";
44 }