[Secure-testing-commits] r1678 - bin

Joey Hess joeyh at costa.debian.org
Sat Aug 27 19:11:31 UTC 2005


Author: joeyh
Date: 2005-08-27 19:11:31 +0000 (Sat, 27 Aug 2005)
New Revision: 1678

Modified:
   bin/dtsasync
Log:
let's try to make it actually work..


Modified: bin/dtsasync
===================================================================
--- bin/dtsasync	2005-08-27 19:05:18 UTC (rev 1677)
+++ bin/dtsasync	2005-08-27 19:11:31 UTC (rev 1678)
@@ -22,8 +22,8 @@
 	}
 	print "Processing $hint\n";
 	while (<IN>) {
-		s/#*//;
 		chomp;
+		s/#.*//;
 		s/^\s+//;
 		s/\s+$//;
 		next unless length;
@@ -35,16 +35,30 @@
 			print "Syncing $sync_package/$sync_version";
 			print "Current status:\n";
 			system("madison", "-S", $sync_package);
+			
 			my @toheidi;
-			foreach my $line (system("madison", "-s", $fromsuite, "-f", "heidi", "-S", $sync_package)) {
-				my ($pkg, $version, $arch)=split(' ', 3);
-				next unless $version eq $sync_version;
-				push @toheidi, $line;
+			my $pid;
+			die "Can’t fork: $!" unless defined($pid = open(KID, "-│"));
+			if ($pid) {
+				while (<KID>) {
+					chomp;
+					my ($pkg, $version, $arch)=split(' ', 3);
+					next unless $version eq $sync_version;
+					push @toheidi, $_;
+				}
+				close KID || print "madison edited nonzero\n";
 			}
+			else {
+				exec "madison", "-s", $fromsuite,
+					"-f", "heidi", "-S", $sync_package
+				or die "can't exec madison: $!";
+			}
+			
 			if (! @toheidi) {
 				print "Already in sync, doing nothing.\n";
 				next;
 			}
+			
 			open(HEIDI, "| $heidicmd") || print "$heidicmd failed!\n";
 			foreach (@toheidi) {
 				print HEIDI "$_\n";




More information about the Secure-testing-commits mailing list