synch_hg_p4/update_repos.pl
changeset 0 02cd6b52f378
equal deleted inserted replaced
-1:000000000000 0:02cd6b52f378
       
     1 #! perl
       
     2 
       
     3 use strict;
       
     4 
       
     5 # update_repos.pl
       
     6 
       
     7 my %repos;
       
     8 
       
     9 foreach my $layer ("os", "mw", "app", "ostools")
       
    10 	{
       
    11 	opendir DIR, $layer;
       
    12 	my @packages = grep !/^\.\.?$/, readdir DIR;
       
    13 	closedir DIR;
       
    14 	foreach my $package (@packages)
       
    15 		{
       
    16 		next if (-f "$layer/$package");
       
    17 		$repos{"$layer/$package"} = 1;
       
    18 		}
       
    19 	}
       
    20 
       
    21 print join("\n",sort keys %repos,"","");
       
    22 
       
    23 my $tree = "d:/Mercurial/";
       
    24 
       
    25 foreach my $layer ("os", "mw", "app", "ostools")
       
    26 	{
       
    27 	opendir DIR, "$tree$layer";
       
    28 	my @packages = grep !/^\.\.?$/, readdir DIR;
       
    29 	closedir DIR;
       
    30 	foreach my $package (@packages)
       
    31 		{
       
    32 		next if (-f "$tree$package");
       
    33 		if (defined $repos{"$layer/$package"})
       
    34 			{
       
    35 			# this one is still relevant
       
    36 			next;
       
    37 			}
       
    38 		# package name has changed, I expect
       
    39 		print "Old package $layer/$package is now obsolete\n";
       
    40 		rename "$tree$layer/$package", "$tree"."obsolete/".$package;
       
    41 		}
       
    42 	}
       
    43 
       
    44 foreach my $repo (sort keys %repos)
       
    45 	{
       
    46 	print "\n\nProcessing $repo\n";
       
    47 	my ($layer,$package) = split /\//, $repo;
       
    48 	my $master = "$tree$repo/MCL_$package/.hg";
       
    49 	
       
    50 	if (-d $master)
       
    51 		{
       
    52 		# repo already exists - move it into place
       
    53 		rename "$tree$repo/MCL_$package/.hg", "$repo/.hg";
       
    54 		}
       
    55 	else
       
    56 		{
       
    57 		# New repo
       
    58 		print "New repository $repo\n";
       
    59 		mkdir "$tree$layer";
       
    60 		mkdir "$tree$layer/$package";
       
    61 		mkdir "$tree$layer/$package/MCL_$package";
       
    62 		}
       
    63 		
       
    64 	chdir $repo;
       
    65 	system("hg init") if (!-d ".hg");
       
    66 	system("hg", "commit", "--addremove", "-m", "add wk04 Nokia source");
       
    67 	chdir "../..";
       
    68 	rename "$repo/.hg", "$tree$repo/MCL_$package/.hg";
       
    69 	}
       
    70 
       
    71