# HG changeset patch # User William Roberts # Date 1246633239 -3600 # Node ID a5c7bdb47359d926d5e5fc4de12a1b80b98982e5 # Parent f57f08cb4e1d8e6ec5c93dd6df86c0dcc7030418 Add "-sort" option to sort the recipes before printing, for comparing two logs diff -r f57f08cb4e1d -r a5c7bdb47359 williamr/sbs_findstr.pl --- a/williamr/sbs_findstr.pl Mon Jun 29 17:33:23 2009 +0100 +++ b/williamr/sbs_findstr.pl Fri Jul 03 16:00:39 2009 +0100 @@ -15,24 +15,48 @@ # Filter an SBSv2 log to keep only recipes which match a specified RE use strict; +use Getopt::Long; + +my $sort_recipes = 0; +GetOptions( + "s|sort" => \$sort_recipes, # sort output by line + ); my $expression = shift @ARGV; my $line; my $skipping = 1; my $current_target = ""; +my @buffer = (); +my %recipes; @ARGV = map {glob} @ARGV; +sub save_buffer + { + return if (scalar @buffer == 0); + if ($sort_recipes) + { + my $recipe = shift @buffer; + $recipes{$recipe} = join("",@buffer); + } + else + { + print @buffer; + } + @buffer = (); + } + while ($line =<>) { if (substr($line,0,9) eq "") { - print $line if ($skipping == 0); + push @buffer, $line if ($skipping == 0); $skipping = 1; # set this to 0 to get the "between recipes" stuff next; } if (substr($line,0,8) eq "