Procházet zdrojové kódy

dpkg-scanpackages: don't die if we can't open a package

Wichert Akkerman před 27 roky
rodič
revize
ee56ab367f
2 změnil soubory, kde provedl 16 přidání a 4 odebrání
  1. 5 0
      ChangeLog
  2. 11 4
      scripts/dpkg-scanpackages.pl

+ 5 - 0
ChangeLog

@@ -1,3 +1,8 @@
+Tue Oct 12 17:15:08 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+  * don't die if we can't open a package in dpkg-scanpackages, just print
+    a warning and skip the package.
+
 Mon Oct 11 18:18:25 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
 
   * Move dselect into its own package

+ 11 - 4
scripts/dpkg-scanpackages.pl

@@ -39,12 +39,19 @@ $#ARGV == 1 || $#ARGV == 2
 open(F,"find $binarydir/ -follow -name '*.deb' -print |")
     or die "Couldn't open pipe to find: $!\n";
 while (<F>) {
-    chop($fn=$_);
+    chomp($fn=$_);
     substr($fn,0,length($binarydir)) eq $binarydir
 	or die "$fn not in binary dir $binarydir\n";
-    $t= `dpkg-deb -I $fn control`
-	or die "Couldn't call dpkg-deb on $fn: $!\n";
-    $? and die "\`dpkg-deb -I $fn control' exited with $?\n";
+    $t= `dpkg-deb -I $fn control`;
+    if ($t eq "") {
+	warn "Couldn't call dpkg-deb on $fn: $!, skipping package\n";
+	next;
+    }
+    if ($?) {
+    	warn "\`dpkg-deb -I $fn control' exited with $?, skipping package\n";
+	next;
+    }
+
     undef %tv;
     $o= $t;
     while ($t =~ s/^\n*(\S+):[ \t]*(.*(\n[ \t].*)*)\n//) {