SVN: toys/stbr/queue_parser.pl

sparky sparky at pld-linux.org
Sun Nov 22 23:24:51 CET 2009


Author: sparky
Date: Sun Nov 22 23:24:51 2009
New Revision: 10997

Modified:
   toys/stbr/queue_parser.pl
Log:
- print partial info 8 minutes after first received status


Modified: toys/stbr/queue_parser.pl
==============================================================================
--- toys/stbr/queue_parser.pl	(original)
+++ toys/stbr/queue_parser.pl	Sun Nov 22 23:24:51 2009
@@ -127,8 +127,8 @@
 	foreach my $p ( @pkg ) {
 		my ($id) = $p =~ m{<batch id='(.*?)'};
 
-		if ( $data->{printed}->{$id} ) {
-			$printed{$id} = 1;
+		if ( ( $data->{printed}->{$id} or "" ) eq "all" ) {
+			$printed{$id} = "all";
 			next;
 		}
 
@@ -160,27 +160,42 @@
 			}
 		}
 
-		my $print = undef;
 		if ( $all_done ) {
-			$print = 1;
-		} elsif ( $some_done ) {
-			$print = 0 if $time + 120 < $now;
-		}
-		if ( not $all_done ) {
+			# all done
+			next if $printed_something > 4;
+			$printed{$id} = "all";
+		} else {
 			$done_so_far = 0;
-			$printed{$id} = 0 if $some_done;
-			next if exists $data->{printed}->{$id};
-		}
+			next unless $some_done;
 
-		if ( defined $print ) {
-			$printed{$id} = $print;
+			# some done ?
+			my $ftime = $data->{printed}->{$id};
+			if ( $ftime and $ftime eq "some" ) {
+				$printed{$id} = "some";
+				next;
+			}
 
-			print $pre
-				. "$rpm$color_b:$color_e "
-				. ( join ", ", @status )
-				. "\n";
-			last GROUP if not $term and ++$printed_something > 4;
+			# nothing printed yet, first status info
+			unless ( $ftime ) {
+				$printed{$id} = $now;
+				next;
+			}
+			$printed{$id} = $ftime;
+
+			next unless $ftime =~ /^\d+$/; # bug
+			next if $printed_something > 4;
+			if ( $ftime + 8 * 60 < $now ) {
+				$printed{$id} = "some";
+			} else {
+				next;
+			}
 		}
+
+		print $pre
+			. "$rpm$color_b:$color_e "
+			. ( join ", ", @status )
+			. "\n";
+		$printed_something++ unless $term;
 	}
 	$data->{last_time} = $time if $done_so_far;
 }


More information about the pld-cvs-commit mailing list