[Secure-testing-commits] r31 - sarge-checks

Joey Hess joeyh@haydn.debian.org
Thu, 28 Oct 2004 15:39:48 -0600


Author: joeyh
Date: 2004-10-28 15:39:00 -0600 (Thu, 28 Oct 2004)
New Revision: 31

Modified:
   sarge-checks/checklist.pl
Log:
support CVEs, multiple lists, and being passed directories


Modified: sarge-checks/checklist.pl
===================================================================
--- sarge-checks/checklist.pl	2004-10-28 21:37:32 UTC (rev 30)
+++ sarge-checks/checklist.pl	2004-10-28 21:39:00 UTC (rev 31)
@@ -1,37 +1,42 @@
 #!/usr/bin/perl
 # Must run on a machine with madison.
 
-my $list=shift;
-if (! $list) {
+if (! @ARGV) {
 	die "usage: $0 list\n";
 }
 
-open (IN, $list) || die "open $list: $!";
-while (<IN>) {
-	chomp;
-	if (/^\[/) {
-		($id)=m/(DSA-.*?) /;
+foreach my $list (@ARGV) {
+	if (-d $list) {
+		$list="$list/list";
 	}
-	elsif (/^CAN-/) {
-		$id=$_;
-	}
-	elsif (/^\s+[!-]\s+(.*?)\s+(.*)$/) {
-		my $package=$1;
-		my $version=$2;
-		if ($version=~/unfixed/) {
-			print "$package $version for $id\n";
-			next;
+	
+	open (IN, $list) || die "open $list: $!";
+	while (<IN>) {
+		chomp;
+		if (/^\[/) {
+			($id)=m/(DSA-.*?) /;
 		}
-		my $maddy=`madison -s testing '$package'`;
-		if (length $maddy) {
-			my @fields = split(/\s*\|\s*/, $maddy);
-			my $cmp=system("dpkg --compare-versions '$fields[1]' '>=' '$version'");
-			if ($cmp != 0) {
-				print "$package $version needed, have $fields[1] for $id\n";
+		elsif (/^(CAN|CVE)-/) {
+			$id=$_;
+		}
+		elsif (/^\s+[!-]\s+(.*?)\s+(.*)$/) {
+			my $package=$1;
+			my $version=$2;
+			if ($version=~/unfixed/) {
+				print "$package $version for $id\n";
+				next;
 			}
+			my $maddy=`madison -s testing '$package'`;
+			if (length $maddy) {
+				my @fields = split(/\s*\|\s*/, $maddy);
+				my $cmp=system("dpkg --compare-versions '$fields[1]' '>=' '$version'");
+				if ($cmp != 0) {
+					print "$package $version needed, have $fields[1] for $id\n";
+				}
+			}
 		}
+		elsif (/HELP/) {
+			print $_." ($id)\n";
+		}
 	}
-	elsif (/HELP/) {
-		print $_." ($id)\n";
-	}
 }