Bug 881: "Automatic creation of release note content broken by config change"
Added a new option to allow the caller to specify where the publish location is.
Minor improvements to formatting of output.
Turned on warnings, and fixed most of those that appeared.
Greatly simplified the checking of the script arguments.
Removed code which was noted to be unnecessary, and was.
Declared some variables more closely to the code that uses them.
#! perl
use strict;
# update_repos.pl
my %repos;
foreach my $layer ("os", "mw", "app", "ostools")
{
opendir DIR, $layer;
my @packages = grep !/^\.\.?$/, readdir DIR;
closedir DIR;
foreach my $package (@packages)
{
next if (-f "$layer/$package");
$repos{"$layer/$package"} = 1;
}
}
print join("\n",sort keys %repos,"","");
my $tree = "d:/Mercurial/";
foreach my $layer ("os", "mw", "app", "ostools")
{
opendir DIR, "$tree$layer";
my @packages = grep !/^\.\.?$/, readdir DIR;
closedir DIR;
foreach my $package (@packages)
{
next if (-f "$tree$package");
if (defined $repos{"$layer/$package"})
{
# this one is still relevant
next;
}
# package name has changed, I expect
print "Old package $layer/$package is now obsolete\n";
rename "$tree$layer/$package", "$tree"."obsolete/".$package;
}
}
foreach my $repo (sort keys %repos)
{
print "\n\nProcessing $repo\n";
my ($layer,$package) = split /\//, $repo;
my $master = "$tree$repo/MCL_$package/.hg";
if (-d $master)
{
# repo already exists - move it into place
rename "$tree$repo/MCL_$package/.hg", "$repo/.hg";
}
else
{
# New repo
print "New repository $repo\n";
mkdir "$tree$layer";
mkdir "$tree$layer/$package";
mkdir "$tree$layer/$package/MCL_$package";
}
chdir $repo;
system("hg init") if (!-d ".hg");
system("hg", "commit", "--addremove", "-m", "add wk04 Nokia source");
chdir "../..";
rename "$repo/.hg", "$tree$repo/MCL_$package/.hg";
}