releaseAutomation/fcls4releasenotes.pl
author Simon Howkins <simonh@symbian.org>
Fri, 06 Nov 2009 15:21:20 +0000
changeset 102 5407bb741e43
parent 99 5adea361d896
child 103 b39734cad470
permissions -rw-r--r--
Changed the hard-coded default for the releases location, so at least tonight's candidate build will work OK.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
     1
#!perl -w
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
     2
# Copyright (c) 2009 Symbian Foundation Ltd
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
     3
# This component and the accompanying materials are made available
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
     4
# under the terms of the License "Eclipse Public License v1.0"
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
     5
# which accompanies this distribution, and is available
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
     6
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
     7
#
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
     8
# Initial Contributors:
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
     9
# Symbian Foundation Ltd - initial contribution.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    10
#
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    11
# Contributors:
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    12
# Arnaud Lenoir
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    13
#
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    14
# Description:
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    15
# Task 243 - Generate FCLs details between 2 PDKs to be included as part of the release notes
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    16
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    17
# Here is the location for the naming convention for the PDKs: http://developer.symbian.org/wiki/index.php/Build_and_Integration
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    18
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    19
use strict;
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    20
use Getopt::Long;
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    21
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    22
#
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    23
# Configuration data and constants for the script
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    24
#
102
5407bb741e43 Changed the hard-coded default for the releases location, so at least tonight's candidate build will work OK.
Simon Howkins <simonh@symbian.org>
parents: 99
diff changeset
    25
my $default_pdk_loc='//v800020/Publish/Releases/';
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    26
print "default_pdk_loc=$default_pdk_loc\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    27
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    28
# Nb of arguments to be passed to the script to work. If that need to change, just modify nb_arg_to_pass!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    29
my $nb_arg_to_pass=2;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    30
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    31
# Name of the file that contains the data we need to extract for this script
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    32
my $build_bom_zip_file_to_extract="build_BOM.zip";
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    33
my $build_logs_zip_file_to_extract="build_logs.zip";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    34
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    35
# Name of the file we need to work on to extract the data necessary for the Release Notes from build_BOM.zip
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    36
my $name_of_file_to_compare="build-info.xml";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    37
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    38
# File used to extract path and component name for a package from build_logs.zip
98
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
    39
my $pckg_extraction_data_file_name = "PkgComponentAnalysisSummary.csv";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    40
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    41
# When using the script as part of the build system, we don't have access to the zip files yet, therefore we need to have a look for the file directly
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    42
# This is working only when using pdkloc2 only. In any other cases we are not bothered!!!!!
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    43
my $bom_dir="BOM";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    44
my $analysis_dir="analysis";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    45
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    46
# Pattern used to search for PDKs
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    47
my $pdk_start_pattern="PDK_";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    48
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    49
# Pattern used to extract info from the xml file
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    50
my $starting_pattern_for_xml_extraction="<name>Sources</name>";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    51
my $ending_pattern_for_xml_extraction="</project>";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    52
# Pattern to extract data from the line in the file
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    53
# Branch type. If not a branch type, we are not interested
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    54
my $branch_type_extraction_pattern="(MCL|FCL)";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    55
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    56
my $mcl_cste="MCL";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    57
my $fcl_cste="FCL";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    58
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    59
# package name
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    60
#/imgeditor/#:86a88f39b644</baseline>
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    61
# # is used to define the changeset number for mercurial.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    62
# Therefore if we have a look what is before "/#", we should always find the package name!!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    63
my $package_extraction_pattern = "([^/]+)/?#";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    64
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    65
# When that "boolean value is set to 1 or true, then the line we read in the file can be search for the information we want to extract
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    66
# If $starting_pattern_for_xml_extraction true, then set extraction_from_xml_is_allowed to true/1
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    67
# If $ending_pattern_for_xml_extraction false, then reset extraction_from_xml_is_allowed to false/0
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    68
# $ending_pattern_for_xml_extraction is called several times in the program, but this is not a problem as we don't set it to false/0 and therefore do nothing!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    69
my $extraction_from_xml_is_allowed=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    70
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    71
# Temporary location used to do the work
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    72
my $working_drive="c:";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    73
my $working_directory="temp";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    74
my $working_sub_directory="fcl_extraction";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    75
my $working_pdk1_directory="pdk1";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    76
my $working_pdk2_directory="pdk2";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    77
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    78
# Name of the file that we are creating to hold the information necessary for the Release Notes
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
    79
my $name_of_file_to_publish="releaseNotes.wiki.txt";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    80
#Location for that file
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    81
# This values need to be overwritten!!!
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    82
my $location_of_file_to_publish="c:\\temp";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    83
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    84
#
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    85
# End configuration data for the script
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    86
#
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    87
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    88
# Arguments / Data used for the script
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    89
my $help = 0;
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    90
my $publishDir;
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
    91
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    92
my @PDK = ({}, {});
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
    93
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    94
GetOptions((
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    95
	'pdknb1=s' => \$PDK[0]->{number},
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    96
	'pdknb2=s' => \$PDK[1]->{number},
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    97
	'pdkname1=s' => \$PDK[0]->{name},
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    98
	'pdkname2=s' => \$PDK[1]->{name},
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
    99
	'pdkloc1=s' => \$PDK[0]->{loc},
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   100
	'pdkloc2=s' => \$PDK[1]->{loc},
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   101
	'publish=s' => \$publishDir,
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   102
	'help!' => \$help,
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   103
));
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   104
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   105
if ($help)
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   106
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   107
	helpme();
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   108
	exit(0);
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   109
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   110
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   111
foreach my $pdkCount (0 .. $#PDK)
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   112
{
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   113
	if (scalar (grep {defined} keys %{$PDK[$pdkCount]}) == 0)
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   114
	{
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   115
		print "No data provided to identify PDK", $pdkCount + 1, "\n";
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   116
		helpme();
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   117
		exit (1);
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   118
	}
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   119
	if (scalar (grep { defined $_ } values %{$PDK[$pdkCount]}) > 1)
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   120
	{
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   121
		print "Multiple data provided to identify PDK", $pdkCount + 1, "\n";
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   122
		print values %{$PDK[$pdkCount]};
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   123
		helpme();
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   124
		exit (1);
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   125
	}
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   126
}
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   127
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   128
my $pdknb1 = $PDK[0]->{number} || "";
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   129
my $pdkname1 = $PDK[0]->{name} || "";
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   130
my $pdkloc1 = $PDK[0]->{loc} || "";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   131
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   132
my $pdknb2 = $PDK[1]->{number} || "";
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   133
my $pdkname2 = $PDK[1]->{name} || "";
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   134
my $pdkloc2 = $PDK[1]->{loc} || "";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   135
98
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   136
print "pdknb1=$pdknb1\n";
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   137
print "pdknb2=$pdknb2\n";
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   138
print "pdkname1=$pdkname1\n";
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   139
print "pdkname2=$pdkname2\n";
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   140
print "pdkloc1=$pdkloc1\n";
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   141
print "pdkloc2=$pdkloc2\n";
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   142
print "help=$help\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   143
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   144
# Use the specified release location if supplied
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   145
$default_pdk_loc = $publishDir || $default_pdk_loc;
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   146
$default_pdk_loc =~ s{([^/\\])$}{$1\\};
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   147
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   148
# First PDK to check
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   149
my $pdk_path1="";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   150
my $pdk_complete_name1=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   151
my $pdk_complete_path1=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   152
my $pdk_path1_exist=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   153
my $pdk_zip1_exit=0; # Not necessary
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   154
my $pdk1_correct_name_to_use="";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   155
my $loc1_contains_the_zip_file_we_need=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   156
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   157
# Second PDK to check
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   158
my $pdk_path2="";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   159
my $pdk_complete_name2=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   160
my $pdk_complete_path2=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   161
my $pdk_path2_exist=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   162
my $pdk_zip2_exist=0; # Not necessary
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   163
my $pdk2_correct_name_to_use="";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   164
my $loc2_contains_the_zip_file_we_need=0;		# Used to indicate that we have found the build_BOM.zip file
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   165
my $loc2_contains_the_xml_csv_files_we_need=0;	# Used to indicate that we have found the build-info.xml and PkgComponentAnalysisSummary.csv
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   166
my $nb_of_xml_csv_files_we_need=2;	# Used to define the number of files we need to have a look at when we are not looking for zip files.
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   167
my $nb_of_zip_files_we_need=2;	# Used to define the number of files we need to have a look at when we are looking for zip files.
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   168
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   169
# Default directory management
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   170
my @directories_list_default_location=();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   171
my $nb_dir_in_default_loc;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   172
my @pdk_dir_list_in_default_location=();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   173
my @pdks_with_valid_zip_in_default_loc=();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   174
my $nb_pdks_with_valid_zip_in_default_loc=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   175
my @find_pdk_for_corresponding_nb1=();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   176
my $nb_of_pdk_for_corresponding_nb1=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   177
my @find_pdk_for_corresponding_nb2=();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   178
my $nb_of_pdk_for_corresponding_nb2=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   179
my @find_pdk_for_corresponding_name1=();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   180
my $nb_of_pdk_for_corresponding_name1=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   181
my @find_pdk_for_corresponding_name2=();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   182
my $nb_of_pdk_for_corresponding_name2=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   183
my @read_files_in_loc=();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   184
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   185
# Data / statistics to be displayed in the release notes
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   186
# We consider that pdk1 is the old version and pdk2 is the new version.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   187
# Note that for the moment, the scripts is not able to make sure that the old version of the pdk is set as pdk1 and the new version of the pdk is set as pdk2!!!!!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   188
# Can be done for pdknb and pdkname but not for pdkloc as for the moment, no way to find out the pdk version from the build-info.xmL!!!!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   189
# Totals
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   190
my $total_packages_pdk1=0;		# Nb of packages included in the pdk1
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   191
my $total_packages_pdk2=0;		# Nb of packages included in the pdk2
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   192
my $total_packages_added=0;		# Nb of packages added in the pdk2
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   193
my $total_packages_removed=0;	# Nb of packages removed from the pdk2
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   194
my $total_new_fcl=0;			# Nb of packages that are now on fcl in pdk2 (means were mcl in pdk1 and are now fcl in pdk2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   195
my $total_no_more_fcl=0;		# Nb of packages that are no more on fcl in pdk2 (means were fcl in pdk1 and are now mcl in pdk2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   196
my $total_still_fcl=0;			# Nb of packages that are still on fcl in pdk2 (means were fcl in pdk1 and are still fcl in pdk2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   197
my $total_very_good_mcl=0;		# Nb of packages that are very good on mcl in pdk1 and pdk2 (means were on mcl in pdk1 and are still mcl in pdk2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   198
# Tables
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   199
my @pdk1_sorting_table;			# Table for pdk1 that is used to sort out and compare the 2 pdks
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   200
my @pdk2_sorting_table;			# Table for pdk2 that is used to sort out and compare the 2 pdks
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   201
my @packages_added_table;		# Table that contains the packages that have been added to pdk2
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   202
my @packages_removed_table;		# Table that contains the packages that have been deleted from pdk2
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   203
my @new_fcl_table;				# Table containing the packages that are now on fcl in pdk2 (means were mcl in pdk1 and are now fcl in pdk2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   204
my @no_more_fcl_table;			# Table containing the packages that are no more on fcl in pdk2 (means were fcl in pdk1 and are now mcl in pdk2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   205
my @still_fcl_table;			# Table containing the packages that are still on fcl in pdk2 (means were fcl in pdk1 and are still fcl in pdk2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   206
my @very_good_mcl_table;		# Table containing the packages that are very good on mcl in pdk1 and pdk2 (means were on mcl in pdk1 and are still mcl in pdk2)
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   207
my %pckg_path_name_array;		# Table containing the path for each packages
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   208
my %pckg_name_array;			# Table containing the real meaning name for each packages, not the name of the package in the directory structure
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   209
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   210
if($pdknb1)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   211
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   212
	$pdk_path1 = $default_pdk_loc;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   213
	$pdk_complete_name1=1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   214
	$pdk_complete_path1=1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   215
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   216
if($pdknb2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   217
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   218
	$pdk_path2 = $default_pdk_loc;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   219
	$pdk_complete_name2=1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   220
	$pdk_complete_path2=1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   221
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   222
if($pdkname1)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   223
{
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   224
	$pdk_path1 = $default_pdk_loc;	
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   225
	$pdk_complete_path1=1;	
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   226
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   227
if($pdkname2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   228
{
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   229
	$pdk_path2 = $default_pdk_loc;	
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   230
	$pdk_complete_path2=1;
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   231
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   232
if($pdkloc1)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   233
{
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   234
	$pdk_path1 = $pdkloc1;
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   235
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   236
if($pdkloc2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   237
{
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   238
	$pdk_path2 = $pdkloc2;
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   239
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   240
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   241
#
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   242
# If we reach this point, this means that we have the right numbers of arguments passed to the script.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   243
#
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   244
print "\nWe are on the right path!!!!\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   245
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   246
print "pdk_path1=$pdk_path1\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   247
print "pdk_complete_name1=$pdk_complete_name1\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   248
print "pdk_complete_path1=$pdk_complete_path1\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   249
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   250
print "pdk_path2=$pdk_path2\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   251
print "pdk_complete_name2=$pdk_complete_name2\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   252
print "pdk_complete_path2=$pdk_complete_path2\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   253
print "\n\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   254
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   255
# Get directory listing of all directories in the default location $default_pdk_loc
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   256
extract_dir_default_loc();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   257
extract_pdk_in_default_loc();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   258
extract_pdk_with_valid_zip_in_default_loc();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   259
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   260
# Compose path if necessary.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   261
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   262
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   263
my $find_val=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   264
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   265
if ($pdk_complete_path1)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   266
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   267
	if ($pdk_complete_name1)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   268
	{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   269
		print "We have the PDK number, we need to define if possible the PDK name and therefore the path to the PDK\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   270
		# Have a look in the default directory if there is a PDK with that number. If none or more than one with the same id, returns the list of PDKs with that same number
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   271
		foreach $find_val (@pdks_with_valid_zip_in_default_loc)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   272
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   273
			if($find_val =~ /$pdknb1/i)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   274
			{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   275
				$find_pdk_for_corresponding_nb1[$nb_of_pdk_for_corresponding_nb1++]=$find_val;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   276
			}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   277
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   278
		print "Table find_pdk_for_corresponding_nb1 is:\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   279
		display_array_one_line_at_the_time(@find_pdk_for_corresponding_nb1);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   280
		
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   281
		if($nb_of_pdk_for_corresponding_nb1==1)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   282
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   283
			print "There is only $nb_of_pdk_for_corresponding_nb1 PDK with the name corresponding to the PDK number given, we can keep going!\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   284
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   285
		else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   286
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   287
			print "There is $nb_of_pdk_for_corresponding_nb1 PDKs with the same name, please select one in the list above and run the perl script again with the right PDK name\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   288
			exit(0);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   289
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   290
		
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   291
		#extract PDK name if only one
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   292
		$pdk1_correct_name_to_use = $find_pdk_for_corresponding_nb1[0];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   293
		$pdk_path1 .= $find_pdk_for_corresponding_nb1[0];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   294
		print "pdknb1 = $pdknb1\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   295
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   296
	else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   297
	{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   298
		print "We have the PDK Name therefore we can define the path to the PDK\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   299
90
e45faf323a50 Correct problem with the name entered as parameter because it was exiting if 2 PDKs starting with the same name
Arnaud Lenoir
parents: 87
diff changeset
   300
		$pdk1_correct_name_to_use = $pdkname1;
e45faf323a50 Correct problem with the name entered as parameter because it was exiting if 2 PDKs starting with the same name
Arnaud Lenoir
parents: 87
diff changeset
   301
		$pdk_path1 .= $pdkname1;
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   302
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   303
	print "The PDK used is: $pdk1_correct_name_to_use\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   304
	print "pdk_path1 = $pdk_path1\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   305
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   306
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   307
$find_val=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   308
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   309
if ($pdk_complete_path2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   310
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   311
	if ($pdk_complete_name2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   312
	{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   313
		print "We have the PDK number, we need to define if possible the PDK name and therefore the path to the PDK\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   314
		# Have a look in the default directory if there is a PDK with that number. If none or more than one with the same id, returns the list of PDKs with that same number
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   315
		foreach $find_val (@pdks_with_valid_zip_in_default_loc)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   316
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   317
			if($find_val =~ /$pdknb2/i)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   318
			{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   319
				$find_pdk_for_corresponding_nb2[$nb_of_pdk_for_corresponding_nb2++]=$find_val;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   320
			}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   321
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   322
		print "Table find_pdk_for_corresponding_nb is:\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   323
		display_array_one_line_at_the_time(@find_pdk_for_corresponding_nb2);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   324
		
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   325
		if($nb_of_pdk_for_corresponding_nb2==1)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   326
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   327
			print "There is only $nb_of_pdk_for_corresponding_nb2 PDK with the name corresponding to the PDK number given, we can keep going!\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   328
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   329
		else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   330
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   331
			print "There is $nb_of_pdk_for_corresponding_nb2 PDKs with the same name, please select one in the list above and run the perl script again with the right PDK name\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   332
			exit(0);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   333
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   334
		
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   335
		#extract PDK name if only one
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   336
		$pdk2_correct_name_to_use = $find_pdk_for_corresponding_nb2[0];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   337
		$pdk_path2 .= $find_pdk_for_corresponding_nb2[0];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   338
		print "pdknb2 = $pdknb2\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   339
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   340
	else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   341
	{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   342
		print "We have the PDK Name therefore we can define the path to the PDK\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   343
	
90
e45faf323a50 Correct problem with the name entered as parameter because it was exiting if 2 PDKs starting with the same name
Arnaud Lenoir
parents: 87
diff changeset
   344
		$pdk2_correct_name_to_use = $pdkname2;
e45faf323a50 Correct problem with the name entered as parameter because it was exiting if 2 PDKs starting with the same name
Arnaud Lenoir
parents: 87
diff changeset
   345
		$pdk_path2 .= $pdkname2;
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   346
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   347
	print "The PDK used is: $pdk2_correct_name_to_use\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   348
	print "pdk_path2 = $pdk_path2\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   349
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   350
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   351
# Find out if the locations are correct or not. We just need to make sure that the location contains the build_BOM.zip, if it's the case, then bingo! If not, exit the program.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   352
my $loc_var;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   353
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   354
if($pdkloc1)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   355
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   356
	# Get the list of file in the location choosen.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   357
	opendir(LOC1_DIR, $pdkloc1);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   358
	@read_files_in_loc = readdir(LOC1_DIR);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   359
	close(LOC1_DIR);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   360
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   361
	foreach $loc_var (@read_files_in_loc)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   362
	{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   363
		if($loc_var =~ /$build_bom_zip_file_to_extract$/)
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   364
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   365
			print "We found the file: $loc_var\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   366
			
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   367
			$pdk1_correct_name_to_use = "PDK1";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   368
			$pdk_path1 = $pdkloc1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   369
			
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   370
			print "The PDK used is: $pdk1_correct_name_to_use\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   371
			print "pdk_path1 = $pdk_path1\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   372
			$loc1_contains_the_zip_file_we_need=1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   373
			
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   374
			# As we have found the file, we can probably break!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   375
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   376
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   377
	if(!$loc1_contains_the_zip_file_we_need)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   378
	{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   379
		print "We can't find the file $build_bom_zip_file_to_extract in the location $pdkloc2 and therefore we can't go any further!!\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   380
		exit(0);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   381
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   382
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   383
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   384
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   385
if($pdkloc2)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   386
{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   387
	# Have a look at the zip files in the location choosen.
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   388
	opendir(LOC2_DIR, $pdkloc2);
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   389
	@read_files_in_loc = readdir(LOC2_DIR);	# Need to have a look at the sub directories too!!!!!!
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   390
	close(LOC2_DIR);	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   391
	print "List of files in the directory: @read_files_in_loc\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   392
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   393
	foreach $loc_var (@read_files_in_loc)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   394
	{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   395
		# Have a look for build_bom.zip and build_logs.zip
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   396
		if( ($loc_var =~ /$build_bom_zip_file_to_extract$/) || ($loc_var =~ /$build_logs_zip_file_to_extract$/) )
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   397
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   398
			print "We found the file: $loc_var\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   399
			$loc2_contains_the_zip_file_we_need++;
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   400
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   401
	}
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   402
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   403
	if(!$loc2_contains_the_zip_file_we_need) # If we have the zip file, no need to have a look for the csv and xml files!
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   404
	{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   405
		my $local_var_path;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   406
		
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   407
		print "We are checking for xml file\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   408
		$local_var_path = "$pdkloc2\\$bom_dir";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   409
		print "local_var_path = $local_var_path\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   410
		
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   411
		opendir(LOCBOM_DIR, $local_var_path);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   412
		@read_files_in_loc = readdir(LOCBOM_DIR);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   413
		close(LOCBOM_DIR);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   414
		
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   415
		print "List of files in the directory: @read_files_in_loc\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   416
		
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   417
		foreach $loc_var (@read_files_in_loc)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   418
		{			
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   419
			if($loc_var =~ /$name_of_file_to_compare$/)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   420
			{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   421
				print "We are in the case of the build and instead of looking for zip files, we need to have a look for $name_of_file_to_compare\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   422
				
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   423
				print "We found the file: $loc_var\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   424
				
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   425
				$loc2_contains_the_xml_csv_files_we_need++;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   426
			}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   427
		}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   428
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   429
		print "We are checking for csv file\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   430
		$local_var_path = "$pdkloc2\\$analysis_dir";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   431
		print "local_var_path = $local_var_path\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   432
		
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   433
		opendir(LOCANALYSIS_DIR, $local_var_path);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   434
		@read_files_in_loc = readdir(LOCANALYSIS_DIR);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   435
		close(LOCANALYSIS_DIR);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   436
		
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   437
		print "List of files in the directory: @read_files_in_loc\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   438
		
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   439
		foreach $loc_var (@read_files_in_loc)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   440
		{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   441
			if($loc_var =~ /$pckg_extraction_data_file_name$/)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   442
			{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   443
				print "We are in the case of the build and instead of looking for zip files, we need to have a look for $pckg_extraction_data_file_name\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   444
				
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   445
				print "We found the file: $loc_var\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   446
				
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   447
				$loc2_contains_the_xml_csv_files_we_need++;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   448
			}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   449
		}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   450
	}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   451
	if(($loc2_contains_the_zip_file_we_need==$nb_of_zip_files_we_need) || ($loc2_contains_the_xml_csv_files_we_need==$nb_of_xml_csv_files_we_need))
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   452
	{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   453
		$pdk2_correct_name_to_use = "PDK2";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   454
		$pdk_path2 = $pdkloc2;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   455
		
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   456
		print "The PDK used is: $pdk2_correct_name_to_use\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   457
		print "pdk_path2 = $pdk_path2\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   458
		
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   459
		if($loc2_contains_the_xml_csv_files_we_need==$nb_of_xml_csv_files_we_need)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   460
		{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   461
			$location_of_file_to_publish=$pdkloc2;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   462
			print "location_of_file_to_publish=$location_of_file_to_publish\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   463
		}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   464
	}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   465
	else
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   466
	{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   467
		if($loc2_contains_the_xml_csv_files_we_need<=$nb_of_xml_csv_files_we_need)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   468
		{
98
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   469
			print "We can't find the files $name_of_file_to_compare and/or $pckg_extraction_data_file_name in the location $pdkloc2 and therefore we can't go any further!!\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   470
		}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   471
		else
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   472
		{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   473
			print "We can't find the files $build_bom_zip_file_to_extract in the location $pdkloc2 and therefore we can't go any further!!\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   474
		}
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   475
		exit(0);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   476
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   477
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   478
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   479
print "\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   480
print "If we are here, this means that both $build_bom_zip_file_to_extract have been found and we can start the real work to compare the 2 files to extract what we need!\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   481
print "This is the value for the path we are looking at for pdk_path1: $pdk_path1\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   482
print "This is the value for the path we are looking at for pdk_path2: $pdk_path2\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   483
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   484
# When we are at this point, we know we have 2 build_BOM.zip files that we can compare them!!!!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   485
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   486
my $system_cmd = "";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   487
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   488
my $working_dir="$working_drive\\$working_directory\\$working_sub_directory";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   489
my $working_dir1="$working_drive\\$working_directory\\$working_sub_directory\\$working_pdk1_directory";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   490
my $working_dir2="$working_drive\\$working_directory\\$working_sub_directory\\$working_pdk2_directory";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   491
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   492
# 1st step is to extract the 2 zip files to allow us to have access to build-info.xml
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   493
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   494
# Extract just one file from the zip file using "7z e -r -oOutput_Directory"
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   495
#7z e -r build_BOM.zip build-info.xml
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   496
# Where 7z is the unzip program
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   497
# Where e is for extraction of a file
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   498
# Where -r is for recursive to make sure we have a look in the subdirectories
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   499
# Where -oOutput_Directory is the directory where we want the files to be unzipped
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   500
#
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   501
# Where $working_sub_directory is the directory where we will be carry the work to be done for the script.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   502
# Where $working_pdk1_directory is the subdirectory destination for the PDK1
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   503
# Where $build_bom_zip_file_to_extract is the name of the zip file (in our case: build_BOM.zip)
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   504
# Where $pdk_path1 is the place where the zip file to unzip is
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   505
# where $name_of_file_to_compare is the name of the file we want to extract from the zip file (in our case: build-info.xml)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   506
# Example: 7z e -r -oc:\temp\fcl_extraction\pdk1 C:\temp\Task243Test\PDK_1\build_BOM.zip build-info.xml
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   507
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   508
# Extract file from 1st PDK
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   509
$system_cmd = "7z e -r -o$working_dir1 $pdk_path1\\$build_bom_zip_file_to_extract $name_of_file_to_compare";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   510
print "Exec: $system_cmd\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   511
system($system_cmd);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   512
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   513
print "\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   514
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   515
# Extract the information contained in PkgComponentAnalysisSummary.csv for path a nd package name used by PDK1.
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   516
$system_cmd = "7z e -r -o$working_dir1 $pdk_path1\\$build_logs_zip_file_to_extract $pckg_extraction_data_file_name";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   517
print "Exec: $system_cmd\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   518
system($system_cmd);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   519
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   520
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   521
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   522
# Extract file from 2nd PDK
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   523
if($loc2_contains_the_xml_csv_files_we_need==$nb_of_xml_csv_files_we_need)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   524
{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   525
	my $local_file_path;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   526
	print "We are copying the files $name_of_file_to_compare and $pckg_extraction_data_file_name from $pdk_path2 to $working_dir2\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   527
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   528
	print "Create directory $working_dir2\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   529
	$system_cmd = "mkdir $working_dir2";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   530
	print "Exec: $system_cmd\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   531
	system($system_cmd);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   532
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   533
	print "We are going to copy $name_of_file_to_compare to $working_dir2\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   534
	$local_file_path = "$pdk_path2\\$bom_dir\\$name_of_file_to_compare";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   535
	$system_cmd = "xcopy $local_file_path $working_dir2 \/F";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   536
	print "Exec: $system_cmd\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   537
	system($system_cmd);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   538
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   539
	print "\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   540
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   541
	# Extract the information contained in PkgComponentAnalysisSummary.csv for path and package name used by PDK1.
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   542
	print "We are going to copy $pckg_extraction_data_file_name to $working_dir2\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   543
	$local_file_path = "$pdk_path2\\$analysis_dir\\$pckg_extraction_data_file_name";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   544
	$system_cmd = "xcopy $local_file_path $working_dir2 \/F";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   545
	print "Exec: $system_cmd\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   546
	system($system_cmd);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   547
}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   548
else
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   549
{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   550
	print "We are looking for zip files, then we extract them\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   551
	$system_cmd = "7z e -r -o$working_dir2 $pdk_path2\\$build_bom_zip_file_to_extract $name_of_file_to_compare";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   552
	print "Exec: $system_cmd\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   553
	system($system_cmd);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   554
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   555
	print "\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   556
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   557
	# Extract the information contained in PkgComponentAnalysisSummary.csv for path and package name used by PDK1.
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   558
	$system_cmd = "7z e -r -o$working_dir2 $pdk_path2\\$build_logs_zip_file_to_extract $pckg_extraction_data_file_name";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   559
	print "Exec: $system_cmd\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   560
	system($system_cmd);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   561
}
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   562
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   563
# 2nd step is to extract the information we need from the 2 files build-info.xml
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   564
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   565
# Create 2 hash arrays that will contain the name of the package as key and the value associated as MCL or FCL
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   566
my %build_info_xml1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   567
my %build_info_xml2;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   568
my @sorting_build_info_xml1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   569
my @sorting_build_info_xml2;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   570
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   571
my $key;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   572
# Define the path for the files to work on
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   573
my $path_to_pdk1_file_to_work_on="$working_dir1\\$name_of_file_to_compare";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   574
my $path_to_pdk2_file_to_work_on="$working_dir2\\$name_of_file_to_compare";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   575
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   576
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   577
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   578
my $count_packages=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   579
my @not_sorted_table;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   580
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   581
# Keep only what we need and keep it safe somewhere.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   582
# pdk1
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   583
%build_info_xml1 = extract_packages_and_branch_type_from_file($path_to_pdk1_file_to_work_on);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   584
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   585
print "%build_info_xml1:\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   586
# Define the number of packages for pdk1
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   587
$total_packages_pdk1 = keys %build_info_xml1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   588
print "\nThere is $total_packages_pdk1 packages for $pdk1_correct_name_to_use\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   589
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   590
# 3rd a) step is to sort out the 2 files / table
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   591
# Sort out the tables to facilitate the checking of the different packages
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   592
@not_sorted_table = keys %build_info_xml1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   593
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   594
# ascendant alphabetical sort
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   595
@pdk1_sorting_table = sort { lc($a) cmp lc($b) } @not_sorted_table;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   596
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   597
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   598
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   599
# pdk2
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   600
%build_info_xml2 = extract_packages_and_branch_type_from_file($path_to_pdk2_file_to_work_on);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   601
print "%build_info_xml2:\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   602
# Define the number of packages for pdk2
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   603
$total_packages_pdk2 = keys %build_info_xml2;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   604
print "\nThere is $total_packages_pdk2 packages for $pdk2_correct_name_to_use\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   605
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   606
# 3rd b) step is to sort out the 2 files / table
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   607
# Sort out the tables to facilitate the checking of the different packages
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   608
@not_sorted_table = keys %build_info_xml2;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   609
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   610
# ascendant alphabetical sort
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   611
@pdk2_sorting_table = sort { lc($a) cmp lc($b) } @not_sorted_table;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   612
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   613
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   614
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   615
# 4th step is to compare both data and export it to a file or something similar that is good for media wiki.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   616
# Compare both files to find out the difference between each packages FCL, MCL, added or deleted packages
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   617
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   618
my $tab_counter1=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   619
my $tab_counter2=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   620
my $compare_2_tables;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   621
my $value_package_pdk1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   622
my $value_package_pdk2;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   623
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   624
while (($tab_counter1 < $total_packages_pdk1) && ($tab_counter2 < $total_packages_pdk2)) # or should it be ||
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   625
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   626
	# $a cmp $b
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   627
	# if $a > $b value returned is 1
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   628
	# if $a = $b value returned is 0
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   629
	# if $a < $b value returned is -1
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   630
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   631
	$compare_2_tables = ( $pdk1_sorting_table[$tab_counter1] cmp $pdk2_sorting_table[$tab_counter2] );
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   632
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   633
	if(!$compare_2_tables)	# Compare if the the packages in the tables(index) are the same or not, if $compare_2_tables=0, then equal
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   634
	{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   635
		$value_package_pdk1 = $build_info_xml1{$pdk1_sorting_table[$tab_counter1]};
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   636
		$value_package_pdk2 = $build_info_xml2{$pdk2_sorting_table[$tab_counter2]};
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   637
		
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   638
		if(($value_package_pdk1 eq $mcl_cste) && ($value_package_pdk2 eq $fcl_cste))
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   639
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   640
			$new_fcl_table[$total_new_fcl++] = $pdk1_sorting_table[$tab_counter1];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   641
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   642
		else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   643
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   644
			if(($value_package_pdk1 eq $fcl_cste) && ($value_package_pdk2 eq $mcl_cste))
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   645
			{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   646
				$no_more_fcl_table[$total_no_more_fcl++] = $pdk1_sorting_table[$tab_counter1];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   647
			}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   648
			else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   649
			{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   650
				if(($value_package_pdk1 eq $fcl_cste) && ($value_package_pdk2 eq $fcl_cste))
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   651
				{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   652
					$still_fcl_table[$total_still_fcl++] = $pdk1_sorting_table[$tab_counter1];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   653
				}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   654
				else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   655
				{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   656
					#print "the package was MCL and is still MCL - VERY GOOD\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   657
					$very_good_mcl_table[$total_very_good_mcl++] = $pdk1_sorting_table[$tab_counter1];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   658
				}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   659
			}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   660
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   661
		$tab_counter1++;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   662
		$tab_counter2++;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   663
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   664
	else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   665
	{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   666
		# The values are not the same, therefore it must be an added or deleted package
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   667
		if($compare_2_tables<0)	# If $compare_2_tables=-1, then pdk1 is smaller than pdk2, which means that it has been deleted from pdk2
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   668
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   669
			$packages_removed_table[$total_packages_removed++]=$pdk1_sorting_table[$tab_counter1++];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   670
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   671
		else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   672
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   673
			# If $compare_2_tables=1, then pdk1 is bigger than pdk2, which means that it has been added to pdk2
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   674
			$packages_added_table[$total_packages_added++]=$pdk2_sorting_table[$tab_counter2++];
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   675
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   676
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   677
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   678
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   679
# Build list of files path and name based on csv file generated by the build system (analysis part)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   680
extract_package_detail("$working_dir2\\$pckg_extraction_data_file_name");
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   681
extract_package_detail("$working_dir1\\$pckg_extraction_data_file_name");
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   682
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   683
print "\nPrint all the values related to our calculations\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   684
print "total_packages_pdk1=$total_packages_pdk1\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   685
print "total_packages_pdk2=$total_packages_pdk2\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   686
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   687
print "total_packages_added=$total_packages_added\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   688
print "total_packages_removed=$total_packages_removed\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   689
print "total_new_fcl=$total_new_fcl\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   690
print "total_no_more_fcl=$total_no_more_fcl\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   691
print "total_still_fcl=$total_still_fcl\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   692
print "total_very_good_mcl=$total_very_good_mcl\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   693
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   694
# Checking that the packages have been assigned properly.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   695
# !!!! Need to verify the formula. Not sure that is correct!!!!!!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   696
print "Verification for the total packages between the 2 pdks\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   697
print "Formula used is: total_packages_pdk2 = total_packages_pdk1 + total_packages_added - total_packages_removed\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   698
print "$total_packages_pdk2 = $total_packages_pdk1 + $total_packages_added - $total_packages_removed\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   699
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   700
print "Formula used is: total_packages_pdk1 = total_very_good_mcl + total_new_fcl + total_no_more_fcl + total_still_fcl= total\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   701
print "$total_packages_pdk1 = $total_very_good_mcl + $total_new_fcl + $total_no_more_fcl + $total_still_fcl = ", ($total_very_good_mcl + $total_new_fcl + $total_no_more_fcl + $total_still_fcl), "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   702
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   703
print "Formula used is: total_packages_pdk2 = total_very_good_mcl + total_new_fcl + total_no_more_fcl + total_still_fcl + total_packages_added = total\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   704
print "$total_packages_pdk2 = $total_very_good_mcl + $total_new_fcl + $total_no_more_fcl + $total_still_fcl + $total_packages_added - $total_packages_removed= ", ($total_very_good_mcl + $total_new_fcl + $total_no_more_fcl + $total_still_fcl + $total_packages_added - $total_packages_removed), "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   705
print "\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   706
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   707
# 5th step is to create a txt file ready to be used for the release notes in a media wiki format.
98
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   708
my $path_to_file_to_publish="$location_of_file_to_publish/$name_of_file_to_publish";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   709
open(FCLCOMPARISONFILE, ">$path_to_file_to_publish");	# !!!!! First time we are accessing the file, therefore create it or replace it, AFTR THAT WE NEED TO APPEND IT ONLY!!!!!
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   710
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   711
my $val;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   712
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   713
# Enter the beginning of the section for general information about the pdk and it's predecessor.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   714
print FCLCOMPARISONFILE <<"EOT";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   715
== Packages ==
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   716
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   717
This section provides general information on the packages included in the platform.
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   718
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   719
This is an analysis of '''$pdk2_correct_name_to_use''' compared to the baseline of '''$pdk1_correct_name_to_use'''.
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   720
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   721
EOT
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   722
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   723
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   724
print FCLCOMPARISONFILE "Number total of packages in $pdk1_correct_name_to_use is: '''$total_packages_pdk1'''\n\n";
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   725
print FCLCOMPARISONFILE "Number total of packages in $pdk2_correct_name_to_use is: '''$total_packages_pdk2'''\n\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   726
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   727
print FCLCOMPARISONFILE "=== Packages added ===\n\n";
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   728
print FCLCOMPARISONFILE "Number total of packages added in $pdk2_correct_name_to_use is: '''$total_packages_added'''\n\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   729
foreach $val (@packages_added_table)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   730
{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   731
	if($pckg_name_array{$val})
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   732
	{
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   733
		print FCLCOMPARISONFILE "''' $pckg_name_array{$val} ($pckg_path_name_array{$val}) '''\n\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   734
	}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   735
	else
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   736
	{
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   737
		print FCLCOMPARISONFILE "''' $val ($pckg_path_name_array{$val}) '''\n\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   738
	}
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   739
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   740
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   741
print FCLCOMPARISONFILE "=== Packages removed ===\n\n";
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   742
print FCLCOMPARISONFILE "Number total of packages removed in $pdk2_correct_name_to_use is: '''$total_packages_removed'''\n\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   743
foreach $val (@packages_removed_table)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   744
{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   745
	if($pckg_name_array{$val})
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   746
	{
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   747
		print FCLCOMPARISONFILE "''' $pckg_name_array{$val} ($pckg_path_name_array{$val}) '''\n\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   748
	}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   749
	else
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   750
	{
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   751
		print FCLCOMPARISONFILE "''' $val ($pckg_path_name_array{$val}) '''\n\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   752
	}
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   753
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   754
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   755
# Enter the beginning of the section for the FCL
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   756
print FCLCOMPARISONFILE <<"EOT";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   757
== FCLs ==
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   758
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   759
'''$pdk2_correct_name_to_use''' was built using the FCL versions of the packages listed below: for each one we list the changes in the FCL which are not in the MCL.
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   760
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   761
The previous PDK also involved some FCLs, so we indicate which problems are now fixed in the MCL, and which FCLs are new to this build.
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   762
98
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   763
Cloning the source from Mercurial is made more awkward by using a mixture of MCLs and FCLs, but we provide a tool to help - see [[How to build the Platform#Automatic Mercurial Clone]] for details.
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   764
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   765
EOT
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   766
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   767
# Packages that were on MCL and that are now on FCL
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   768
foreach $val (@new_fcl_table)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   769
{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   770
	if($pckg_name_array{$val})
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   771
	{
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   772
		print FCLCOMPARISONFILE "=== $pckg_name_array{$val} ($pckg_path_name_array{$val}) -- NEW ===\n\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   773
		# TO DO!!!!
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   774
		# Needs to be recovered from Mercurial. How????
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   775
		#[http://developer.symbian.org/bugs/show_bug.cgi?id=156 Bug 156]: Add a missing bld.inf, to renable compilation of the package
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   776
		#[http://developer.symbian.org/bugs/show_bug.cgi?id=197 Bug 197]: PSAlgorithmInternalCRKeys.h is missing
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   777
	}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   778
	else
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   779
	{
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   780
		print FCLCOMPARISONFILE "=== $val ($pckg_path_name_array{$val}) -- NEW ===\n\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   781
	}
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   782
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   783
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   784
# Packages that were on FCL and that are now on FCL
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   785
foreach $val (@still_fcl_table)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   786
{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   787
	if($pckg_name_array{$val})
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   788
	{
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   789
		print FCLCOMPARISONFILE "=== $pckg_name_array{$val} ($pckg_path_name_array{$val}) ===\n\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   790
	}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   791
	else
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   792
	{
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   793
		print FCLCOMPARISONFILE "=== $val ($pckg_path_name_array{$val}) ===\n\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   794
	}
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   795
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   796
82
dbc58074ae06 Synchronised the output filename to match the other parts of the system generating release note content.
Simon Howkins <simonh@symbian.org>
parents: 81
diff changeset
   797
print FCLCOMPARISONFILE "=== FCLs used in $pdk1_correct_name_to_use but not needed in $pdk2_correct_name_to_use ===\n\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   798
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   799
foreach $val (@no_more_fcl_table)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   800
{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   801
	if($pckg_name_array{$val})
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   802
	{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   803
		print FCLCOMPARISONFILE "''' $pckg_name_array{$val} ($pckg_path_name_array{$val}) '''\n\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   804
	}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   805
	else
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   806
	{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   807
		print FCLCOMPARISONFILE "''' $val ($pckg_path_name_array{$val}) '''\n\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   808
	}
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   809
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   810
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   811
close(FCLCOMPARISONFILE);
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   812
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   813
print "\nYou will find the file with all the information you need for the releases note, here: $path_to_file_to_publish\n\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   814
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   815
# Cleanup the mess!!!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   816
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   817
$system_cmd = "rmdir /S /Q $working_dir";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   818
print "Exec: $system_cmd\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   819
system($system_cmd);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   820
90
e45faf323a50 Correct problem with the name entered as parameter because it was exiting if 2 PDKs starting with the same name
Arnaud Lenoir
parents: 87
diff changeset
   821
exit(0);
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   822
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   823
# If no parameters entered or help selected, display help
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   824
sub helpme
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   825
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   826
	print "\nfct: helpme\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   827
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   828
	print "Generate FCLs details between 2 PDKs to be included as part of the release notes\n";	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   829
	print "Default location for PDKs is: $default_pdk_loc\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   830
	print "Usage: perl fcls4releasenotes.pl --input_data1=x --input_data2=y\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   831
	print "Where input_data1 and input_data2 could be pdknb1 or pdknb2 or pdkloc1 or pdkloc2 or pdkname1 or pdkname2\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   832
	print "Where pdknb is the PDK number, for example 2.0.e\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   833
	print "Where pdkloc is the root location where your file $build_bom_zip_file_to_extract is. For ex: \\\\bishare\\releases\\PDK_2.0.e\\ or c:\\temp\\myPDK\\\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   834
	print "Where pdkname is the full name of the PDK, like for ex PDK_candidate_2.0.d_flat\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   835
	print "\nNotes:\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   836
	print "\tParameter names with 1 at the end (pdknb1, pdkname1, pdkloc1) are set for the oldest PDK to use (PDK1)\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   837
	print "\tParameter names with 2 at the end (pdknb2, pdkname2, pdkloc2) are set for the newest PDK to use (PDK2)\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   838
	print "\tIf you try to use for example pdknb2 and pdkname2 or pdkloc1 and pdknb1 the result is not guaranted to be correct!!!! as one will be set as PDK1 and the other as PDK2, but which order????\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   839
	print "\tThe difference is done as follow PDK2 - PDK1\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   840
	print "\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   841
	print "\nTypical command lines from script location:\n";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   842
	print "\t<perl fcls4releasenotes.pl --pdknb1=2.0.e --pdkloc2=c:\\temp\\myPDK\\>\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   843
	print "\t<perl fcls4releasenotes.pl --pdkname1=PDK_2.0.e --pdknb2=2.0.e>\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   844
	print "\t<perl fcls4releasenotes.pl --pdknb2=2.0.d --pdknb1=2.0.e>\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   845
	print "\t<perl fcls4releasenotes.pl help>\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   846
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   847
	list_pdks_at_default_location();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   848
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   849
	exit(0);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   850
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   851
# End section related to help
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   852
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   853
# Extract list of PDKs that are in the default location.
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   854
sub list_pdks_at_default_location
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   855
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   856
	print "\nfct: list_pdks_at_default_location\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   857
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   858
	# Do a dir of the default location
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   859
	print "List of directories in the default location $default_pdk_loc\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   860
	extract_dir_default_loc();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   861
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   862
	# Extract all the PDKs that have the pattern PDK_
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   863
	print "All available PDKS in the default location $default_pdk_loc that have the pattern $pdk_start_pattern\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   864
	extract_pdk_in_default_loc();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   865
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   866
	# Extract all the PDKs that have the file build_BOM.zip
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   867
	print "All available PDKS in the default location $default_pdk_loc that contains the zip file $build_bom_zip_file_to_extract\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   868
	extract_pdk_with_valid_zip_in_default_loc();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   869
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   870
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   871
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   872
# Generates list of directories in the default location used for the storage of the PDKs
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   873
sub extract_dir_default_loc
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   874
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   875
	print "\nfct: extract_dir_default_loc\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   876
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   877
	# Get the list of directories in the default location
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   878
	opendir(DEFAULT_DIR, $default_pdk_loc);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   879
	@directories_list_default_location = readdir(DEFAULT_DIR);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   880
	close(DEFAULT_DIR);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   881
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   882
	$nb_dir_in_default_loc = scalar(@directories_list_default_location);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   883
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   884
	print "nb_dir_in_default_loc=$nb_dir_in_default_loc\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   885
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   886
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   887
# Establish the list of directories that are an actual PDK
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   888
sub extract_pdk_in_default_loc
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   889
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   890
	print "\nfct: extract_pdk_in_default_loc\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   891
	
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   892
	my $nb_pdks_in_default_loc=0;
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   893
	print "pdk_start_pattern = $pdk_start_pattern\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   894
	
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   895
	foreach my $var (@directories_list_default_location)
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   896
	{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   897
		if($var =~ /^$pdk_start_pattern+/)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   898
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   899
			$pdk_dir_list_in_default_location[$nb_pdks_in_default_loc++] = $var;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   900
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   901
	}
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   902
	print "There are $nb_pdks_in_default_loc PDKs in the default location $default_pdk_loc\n";	
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   903
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   904
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   905
# Establish the list of PDK directories with a valid zip file to do the test
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   906
sub extract_pdk_with_valid_zip_in_default_loc
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   907
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   908
	print "\nfct: extract_pdk_with_valid_zip_in_default_loc\n";
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   909
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   910
	my $path_to_find_zip = "";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   911
	my @read_pdk_directory=();
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   912
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   913
	$nb_pdks_with_valid_zip_in_default_loc=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   914
	
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   915
	print "build_bom_zip_file_to_extract=$build_bom_zip_file_to_extract\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   916
	
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   917
	foreach my $var1 (@pdk_dir_list_in_default_location)
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   918
	{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   919
		$path_to_find_zip=$default_pdk_loc;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   920
		
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   921
		$path_to_find_zip .= $var1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   922
				
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   923
		# Get the list of directories in the default location
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   924
		opendir(PDK_DIR, $path_to_find_zip);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   925
		@read_pdk_directory = readdir(PDK_DIR);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   926
		close(PDK_DIR);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   927
	
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   928
		foreach my $var2 (@read_pdk_directory)
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   929
		{
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   930
			if($var2 =~ /$build_bom_zip_file_to_extract$/)
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   931
			{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   932
				$pdks_with_valid_zip_in_default_loc[$nb_pdks_with_valid_zip_in_default_loc++] = $var1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   933
			}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   934
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   935
	}
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
   936
	print "There are $nb_pdks_with_valid_zip_in_default_loc PDKs with a valid $build_bom_zip_file_to_extract zip in the default location $default_pdk_loc\n";	
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   937
	
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   938
	print "This is the list of PDKs that have a zip file called $build_bom_zip_file_to_extract in the default location $default_pdk_loc\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   939
	display_array_one_line_at_the_time(@pdks_with_valid_zip_in_default_loc);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   940
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   941
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   942
# This function is used to extract the name of the package and the type
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   943
sub extract_packages_and_branch_type_from_file
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   944
{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   945
	# 1 Parameters passed, the path to the file to be viewed
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   946
	my ($file_to_work_on) = @_;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   947
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   948
	print "\nfct: extract_packages_and_branch_type_from_file\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   949
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   950
	print "$file_to_work_on\n";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   951
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   952
	my %local_hash_array;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   953
	my $local_key;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   954
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   955
	my $package="";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   956
	my $type_of_branch="";
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   957
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   958
	# Open file
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   959
	open(FILETOWORKON , $file_to_work_on);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   960
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   961
	# Extract data from file
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   962
	my @local_array = <FILETOWORKON>;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   963
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   964
	# Close file
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   965
	close(FILETOWORKON);
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   966
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   967
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   968
	my $extracted_line;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   969
	
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   970
	# Go line by line
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   971
	foreach  $extracted_line (@local_array)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   972
	{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   973
		if ($extracted_line =~ /$starting_pattern_for_xml_extraction/)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   974
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   975
			$extraction_from_xml_is_allowed=1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   976
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   977
		else
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   978
		{
98
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
   979
			if ($extracted_line =~ /$ending_pattern_for_xml_extraction/)
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   980
			{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   981
				$extraction_from_xml_is_allowed=0;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   982
			}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   983
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   984
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   985
		if($extraction_from_xml_is_allowed)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   986
		{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   987
			# Decode the line			
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   988
			
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   989
			# Decode the branch type			
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   990
			if($extracted_line =~ /$branch_type_extraction_pattern/)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   991
			{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   992
				$type_of_branch=$1;
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   993
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   994
				# Decode the package because there is a branch type in the line extracted!
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   995
				if ($extracted_line =~ m,$package_extraction_pattern,)
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   996
				{
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   997
					$package=$1;					
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
   998
				}
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
   999
				$local_hash_array{$package}=$type_of_branch;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1000
				
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1001
			}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1002
		}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1003
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1004
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1005
	# Return hash array containing all the packages and branch type associated
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1006
	return (%local_hash_array);
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1007
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1008
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1009
# Function used to extract all the data from the csv file about the different packages (name, path and real name)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1010
sub extract_package_detail
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1011
{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1012
	# 1 Parameters passed, the path to the file to be viewed
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1013
	my ($file_to_work_on) = @_;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1014
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1015
	print "\nfct: extract_package_detail\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1016
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1017
	print "$file_to_work_on\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1018
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1019
	# Open file
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1020
	open(FILETOWORKON , $file_to_work_on);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1021
	my @local_array = <FILETOWORKON>;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1022
	close(FILETOWORKON);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1023
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1024
	# Create a table with the path for each package using a hash array
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1025
	my $pckg_name_extraction_pattern = "^sf\/[\\w]*\/([\\w]*)";
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
  1026
	my $pckg_path_extraction_pattern = "^([^,]+),";
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1027
	my $pckg_real_name_extraction_pattern = ",[\\s]+([\\w\\s]*),[\\s]+[\\w\\s]*\$";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1028
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1029
	#Typical lines to decode
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1030
	#sf/app/helps,SFL,sf/app/helps/symhelp/helpmodel/group/bld.inf,OK, Help Apps, Help
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1031
	#sf/app/java,SFL,sf/app/java/java_plat/group/bld.inf,OK, , 
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1032
	#sf/app/helps,SFL,sf/app/helps/symhelp/helpmodel/group/bld.inf,OK, Help Apps, Help
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1033
	#sf/app/helps,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1034
	#SFL,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1035
	#sf/app/helps/symhelp/helpmodel/group/bld.inf,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1036
	#OK,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1037
	# Help Apps,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1038
	# Help
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1039
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1040
	#sf/app/java,SFL,sf/app/java/java_plat/group/bld.inf,OK, , 
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1041
	#sf/app/java,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1042
	#SFL,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1043
	#sf/app/java/java_plat/group/bld.inf,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1044
	#OK,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1045
	# ,
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1046
	#
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1047
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1048
	# Go line by line
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
  1049
	foreach my $extracted_line (sort @local_array)
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1050
	{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1051
		if($extracted_line =~ m;$pckg_name_extraction_pattern;)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1052
		{
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
  1053
			my $pckg_name = $1;
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1054
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1055
			if(!$pckg_path_name_array{$pckg_name})	# Check if package is not already in the table to avoid duplicates
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1056
			{
99
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
  1057
				my $pckg_path="''nonstandard path''";
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
  1058
				my $pckg_real_name="";
5adea361d896 Bug 881: "Automatic creation of release note content broken by config change"
Simon Howkins <simonh@symbian.org>
parents: 98
diff changeset
  1059
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1060
				if($extracted_line =~ m;$pckg_path_extraction_pattern;)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1061
				{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1062
					$pckg_path = $1;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1063
				}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1064
				if($extracted_line =~ m;$pckg_real_name_extraction_pattern;)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1065
				{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1066
					$pckg_real_name = $1;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1067
				}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1068
				# fill the tables
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1069
				$pckg_path_name_array{$pckg_name} = $pckg_path;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1070
				$pckg_name_array{$pckg_name} = $pckg_real_name;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1071
			}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1072
		}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1073
	}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1074
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1075
	my @local_array_sorted;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1076
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1077
	@local_array=keys (%pckg_path_name_array);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1078
	@local_array_sorted = sort { lc($a) cmp lc($b) } @local_array;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1079
}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1080
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1081
# Function used to display one line at the time for an array				
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1082
sub display_array_one_line_at_the_time
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1083
{
98
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
  1084
	foreach (@_)
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1085
	{
98
9edb472725a0 Removed commented code, code which had no effect on the output, some unnecessary \s, and a couple of other basic simplifications.
Simon Howkins <simonh@symbian.org>
parents: 91
diff changeset
  1086
		print "$_\n";
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1087
	}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1088
}
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1089
81
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1090
# Function used to display one line at the time for an hash array
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1091
sub display_hash_array_one_line_at_the_time
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1092
{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1093
	my (%hash_array_to_display_one_line_at_the_time) = @_;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1094
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1095
	my @local_keys_array;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1096
	my @local_keys_array_sorted;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1097
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1098
	my $line_to_display;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1099
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1100
	@local_keys_array = keys (%hash_array_to_display_one_line_at_the_time);
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1101
	@local_keys_array_sorted = sort { lc($a) cmp lc($b) } @local_keys_array;
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1102
	
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1103
	foreach $line_to_display (@local_keys_array_sorted)
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1104
	{
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1105
		print "$line_to_display = $hash_array_to_display_one_line_at_the_time{$line_to_display}\n";
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1106
	}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1107
}
63e14a36aefd Arnaudl. Final version of the script before testing live by doing a test build.
Arnaud Lenoir
parents: 80
diff changeset
  1108
80
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1109
# PDKs with build_bom.zip file in the default PDKs location 14-09-2009
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1110
#Z:\Releases\PDK_2.0.e
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1111
#Z:\Releases\PDK_candidate_2.0.d_flat
9f8bdafe5d68 Perl script for the releases notes automation with fcl!
Arnaud Lenoir
parents:
diff changeset
  1112
#Z:\Releases\PDK_candidate_2.0e_FCL_27.78