--- a/common/tools/cachefiles.pl Mon Feb 08 14:50:19 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-#!/usr/bin/perl
-
-
-use strict;
-
-#my $cache = "d:/HG_cache/";
-#my $master = "//v800008/Builds01/";
-my $cache = shift @ARGV;
-my $csv = shift @ARGV;
-my $generated = shift @ARGV;
-my @recover;
-my @nospace;
-my $exitcode = 0;
-
-if(defined $cache && defined $generated && defined $csv)
-{
- print "Cache:$cache\nIn:$csv\nOut:$generated\n";
-
- # Format the cache directory path
- if ( $cache !~ /(.*)[\\\/]$/ )
- {
- $cache .= "/";
- }
-
- open(IN, "<$csv") or die "Couldn't open $csv for reading";
- open(OUT,">$generated") or die "Couldn't open $generated for writing";
- my $header = <IN>;
- print OUT $header;
- while( my $line = <IN>)
- {
- my @args = split(',',$line);
- my $repo = shift @args;
- my $master = "";
- if ( $repo =~ m/^(.*\/)(.*\/(oss|rnd|sfl)\/.*\/)$/i )
- {
- $master = $1;
- $repo = $2;
- }
- if(-d $master.$repo.".hg")
- {
- # print "Found:\t".$master.$repo.".hg\n";
- my $cmd;
- if(-d $cache.$repo.".hg") # update
- {
- $cmd = "hg pull -R $cache$repo $master$repo";
- }
- else #clone
- {
- #taken from the normal clone script...
- my @dirs = split ('\/', $cache.$repo);
- my $destdir = pop @dirs;
- my $path = "";
- foreach my $dir (@dirs)
- {
- $path = ($path eq "") ? $dir : "$path/$dir";
- if (!-d $path)
- {
- mkdir $path;
- }
- }
-
- $cmd = "hg clone -U $master$repo $cache$repo";
- }
- if(cache($cmd))
- {
- print OUT $cache.$repo.",".join(',', @args);
- }
- else
- {
- print OUT $master.$repo.",".join(',', @args);
- $exitcode = 1;
- }
- }
- else
- {
- print "Error: cannot find ".$master.$repo.".hg\n";
- $exitcode = 1;
- }
- }
-
- close OUT;
- close IN;
-}
-else
-{
- print "Usage: <cache_path> <source_csv> <generated_csv>";
- $exitcode = 1;
-}
-
-foreach my $line (@recover)
-{
- print "WARNING: HG Recover: $line\n";
-}
-foreach my $line (@nospace)
-{
- print "WARNING: No Space: $line\n";
-}
-
-exit $exitcode;
-
-sub cache($cmd)
-{
- my $cmd = shift;
- print "$cmd\n";
-
- open(CMD, "$cmd 2>&1 |") or die "Couldn't execute $cmd";
- while(my $line = <CMD>)
- {
-# print $line;
- # parse the output for failures. On fail return 0;
- if($line =~ m/abort/i)
- {
- print $line;
- if($line =~ m/hg\s+recover/i)
- {
- push(@recover, $cmd);
- }
- elsif($line =~ m/No\s+space/i)
- {
- push(@nospace, $cmd);
- }
- close CMD;
- return 0;
- }
- }
- close CMD;
- return 1;
-}
\ No newline at end of file