# HG changeset patch # User Simon Howkins # Date 1257852575 0 # Node ID 718b119bed63ae5b12b9beda8e02576232eaa131 # Parent 8d399d7a7b6b8acf8759398382aed6a5ffce55e8 Enabled script to accept multiple system_definition inputs, to cope with the split build situation. diff -r 8d399d7a7b6b -r 718b119bed63 releaseAutomation/packageComparison.pl --- a/releaseAutomation/packageComparison.pl Mon Nov 09 18:13:38 2009 +0000 +++ b/releaseAutomation/packageComparison.pl Tue Nov 10 11:29:35 2009 +0000 @@ -19,20 +19,20 @@ use Getopt::Long; my $sourcesCsv; # sources.csv file for this build -my $sysDef; # system definition file for this build +my @sysDef; # system definition files to look in for this build my $previousPdkLabel; # hg tag to compare against my $prevSourcesCsv; # sources.csv file for baseline build, if different to this build my $prevSysDef; # system definition file for baseline build, if different to this build GetOptions(( 'sources=s' => \$sourcesCsv, - 'sysdef=s' => \$sysDef, + 'sysdef=s' => \@sysDef, 'baseline=s' => \$previousPdkLabel, 'prevSources=s' => \$prevSourcesCsv, 'prevSysdef=s' => \$prevSysDef, )); -if (!$sourcesCsv || !$sysDef || !$previousPdkLabel) +if (!$sourcesCsv || !@sysDef || !$previousPdkLabel) { warn "Necessary argument(s) not supplied\n\n"; usage(); @@ -47,12 +47,11 @@ } $prevSourcesCsv ||= $sourcesCsv; -$prevSysDef ||= $sysDef; my $packages = { current => {}, previous => {} }; # Load current manifest -open(my $manifest, "<", $sourcesCsv) or die; +open(my $manifest, "<", $sourcesCsv) or die "Unable to open $sourcesCsv"; my @manifest = <$manifest>; close $manifest; populate($packages->{current}, @manifest); @@ -62,10 +61,16 @@ populate($packages->{previous}, @manifest); my $xml = XML::Parser->new(Style => "Objects") or die; -# Load current names from current system definition -eval { populateNames($packages->{current}, $xml->parsefile($sysDef) ) }; -# Load previous names from previous system definition -eval { populateNames($packages->{previous}, $xml->parsestring(scalar `hg cat -r $previousPdkLabel $prevSysDef`) ) }; +foreach my $sysDef (@sysDef) +{ + # Load current names from current system definition (fails silently) + eval { populateNames($packages->{current}, $xml->parsefile($sysDef) ) }; + # Load previous names from current system definition at earlier revision (fails silently) + eval { populateNames($packages->{previous}, $xml->parsestring(scalar `hg cat -r $previousPdkLabel $sysDef 2> nul:`) ) }; +} + +# Load previous names from previous system definition, if supplied +populateNames($packages->{previous}, $xml->parsestring(scalar `hg cat -r $previousPdkLabel $prevSysDef`) ) if $prevSysDef; # Output release note info... @@ -202,9 +207,9 @@ { if (ref $_) { - if (ref $_ eq "main::block" || ref $_ eq "main::package") + if (ref $_ eq "main::block" || ref $_ eq "main::package" || ref $_ eq "main::module") { - if (exists $packages->{$_->{name}}) + if (exists $packages->{$_->{name}} && exists $_->{"long-name"}) { $packages->{$_->{name}}->{name} = $_->{"long-name"}; $packages->{$_->{name}}->{sortKey} = lc $_->{"long-name"};