Cross-ref table by package name
authorHeikki Levanto <heikki@indexdata.dk>
Fri, 18 Mar 2011 14:04:19 +0000 (15:04 +0100)
committerHeikki Levanto <heikki@indexdata.dk>
Fri, 18 Mar 2011 14:04:19 +0000 (15:04 +0100)
aptcheck/aptcheck.pl

index 317341d..71e00fe 100755 (executable)
@@ -67,21 +67,19 @@ for $hline ( split("\n",$hostlist) ) {
         $pkgs++;
         my $key = $pkg;
         if ( $src =~ /Security/ ) {
-            $det .= "<b>$pkg (s) </b>";
-            $key = "<b>$pkg</b>";
+            $det .= "<b>$pkg (s)</b> ";
             $sechosts{$H}=1;
             $secpkgs{$pkg}=1;
             $secs++;
             $sectot++;
         } elsif ( $src =~ /Indexdata/ ) {
             $det .= "<i><b>$pkg</b> (id) </i>";
-            $key = "<i>$pkg</i>";
             $ownhosts{$H}=1;
             $ownpkgs{$pkg}=1;
             $own++;
             $owntot++;
         } else {
-            $det .= "$pkg";
+            $det .= "$pkg ";
             $normhosts{$H}=1;
             $normpkgs{$pkg}=1;
             $normtot++;
@@ -89,9 +87,9 @@ for $hline ( split("\n",$hostlist) ) {
         if ( !$summary{$key} ) {
             $summary{$key} = "";
         }
+        $summary{$key} .= "$H ";
         $new = strdiff($cur,$new);
         $cur = strdiff($new,$cur);
-        $summary{$key} .= "$H ";
         $det .= "</td> ";
         $det .= "<td>$cur</td> ";
         $det .= "<td>$new</td> ";
@@ -126,7 +124,7 @@ print F "<body>\n";
 print F "<H1>Apt package status</H1>\n";
 
 
-# Summary table - NEW: one row for per host group
+# Summary table: one row for per host group
 print F "<p/>\n";
 print F "<table border='1' >\n";
 print F "<tr><td>&nbsp;</td>" ;
@@ -140,7 +138,12 @@ if ( $sectot ) {
     for $HH ( sort(keys(%sechosts)) ) {
         print F "<a href='#$HH'><b>$HH</b></a> ";
     }
-    print F "<td>" . join(" ",sort(keys(%secpkgs))) . "&nbsp;</td>";
+    print F "</td>";
+    print F "<td>";
+    for $PP ( sort(keys(%secpkgs)) ) {
+        print F "<a href='#$PP'>$PP</a> ";
+    }
+    print F "</td>";
     print F "</tr>\n";
 }
 if ( $owntot ) {
@@ -150,7 +153,13 @@ if ( $owntot ) {
     for $HH ( sort(keys(%ownhosts)) ) {
         print F "<a href='#$HH'><b>$HH</b></a> ";
     }
-    print F "<td>" . join(" ",sort(keys(%ownpkgs))) . "&nbsp;</td>";
+    print F "</td>";
+    print F "<td>";
+    for $PP ( sort(keys(%ownpkgs)) ) {
+        print F "<a href='#$PP'>$PP</a> ";
+    }
+    print F "</td>";
+    #print F "<td>" . join(" ",sort(keys(%ownpkgs))) . "&nbsp;</td>";
     print F "</tr>\n";
 }
 if ( $normtot ) {
@@ -185,6 +194,23 @@ print F "</table>\n";
 # The host table
 print F $table;
 
+# Package table
+print F "<p/><b><u>Packages</u></b>\n";
+print F "<table>\n";
+for $P ( sort(keys(%summary)) ) {
+    my $PN = $P;
+    $PN = "<b>$P (s)</b>" if ($secpkgs{$P});
+    $PN = "$P (id)" if ($ownpkgs{$P});
+    print F "<tr><td><a name='$P'/>$PN</td>\n";
+    print F "<td>";
+    for $HH ( split(' ',$summary{$P} )) {
+        print F "<a href=#$HH>$HH</a> ";
+    }
+    print F "</td>\n";
+
+}
+print F "</table>\n";
+
 print F "<p/>Produced " . `date`.
         " on " . `hostname` . " by " . `whoami` .
         "<br/>\n";