synch_hg_p4/update_repos.pl
changeset 0 02cd6b52f378
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/synch_hg_p4/update_repos.pl	Thu May 28 10:10:03 2009 +0100
@@ -0,0 +1,71 @@
+#! 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";
+	}
+
+	
\ No newline at end of file