tsrc/testing/tools/copylogsfromdirs.pl
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/testing/tools/copylogsfromdirs.pl	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,376 @@
+#
+# Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
+#------------------------------------------------------------------------------------
+# Includes
+#------------------------------------------------------------------------------------
+#use strict;
+use warnings;
+use Cwd; # for cwd
+use FindBin; # for FindBin:Bin
+use File::Path; # for mkpath
+use Date::Calc;
+
+while(scalar(@ARGV) >= 1)
+{
+	my $argument = shift(@ARGV);
+
+	if($argument eq "-release")
+	{
+		#$paramRelease = shift(@ARGV);
+	}
+	else
+	{
+		print "arg: $argument\n";
+		Help();
+	}
+}
+
+sub Help
+{
+    print <<USAGE_EOF;
+
+USAGE_EOF
+
+	exit();
+}
+
+#------------------------------------------------------------------------------------
+# Main code
+#------------------------------------------------------------------------------------
+
+my $startDir = cwd;
+
+print("here: $startDir\n");
+
+opendir(DIR, ".");
+my @dirs = sort( readdir(DIR) );
+closedir(DIR);
+
+foreach my $dir(@dirs)
+{
+	print("search $dir\n");
+	if($dir eq "." or $dir eq "..") {next};
+
+	if (-d $dir)
+	{
+	    if($file eq "." or $file eq "..") {next};
+
+	 	my $log = FindFile($dir, "iptvlog.txt", 0);
+	 	my $report = FindFile($dir, "testreport.txt", 0);
+	 	my $ctcdata = FindFile($dir, "ctcdata.txt", 0);
+	 	$log =~ s/\//\\/;
+	 	$report =~ s/\//\\/;
+	 	$ctcdata =~ s/\//\\/;
+
+	 	print("found $log\n");
+	 	print("found $report\n");
+	 	if($report ne "" and $log ne "")
+	 	{
+            my $file = GetFilename($log);
+            my $pos = rindex($file, ".");
+            my $ext = substr($file, $pos);
+            my $file = substr($file, 0, $pos);
+            $file = $file . "_" . $dir . $ext;
+            my $logdest = $startDir . "\\" . $file;
+	     	$logdest =~ s/\//\\/;
+	     	system("copy \"$log\" \"$logdest\"\n\n");
+
+            $file = GetFilename($report);
+            $pos = rindex($file, ".");
+            $ext = substr($file, $pos);
+            $file = substr($file, 0, $pos);
+            $file = $file . "_" . $dir . $ext;
+            my $reportdest = $startDir . "\\" . $file;
+	     	$reportdest =~ s/\//\\/;
+	     	system("copy \"$report\" \"$reportdest\"\n\n");
+
+            if( $ctcdata ne "" )
+            {
+                $file = GetFilename($ctcdata);
+                $pos = rindex($file, ".");
+                $ext = substr($file, $pos);
+                $file = substr($file, 0, $pos);
+                $file = $file . "_" . $dir . $ext;
+                my $ctcdest = $startDir . "\\" . $file;
+    	     	$ctcdest =~ s/\//\\/;
+    	     	system("copy \"$ctcdata\" \"$ctcdest\"\n\n");
+            }
+	 	}
+	}
+}
+
+chdir ($startDir);
+
+exit();
+
+
+#------------------------------------------------------------------------------------
+# FindFiles
+# Parameters:
+#	$goDir, where to start finding
+#	$fileSearch, filename search
+#	$searchType, 0 = fullname search, 1 = filetype search
+#	$refFiles, reference to array which will hold found files
+#------------------------------------------------------------------------------------
+sub FindFiles
+{
+	my ($godir, $fileSearch, $searchType, $refFiles) = @_;
+
+	my $startDir = cwd;
+
+	chdir($godir);
+
+	#print("Now in: " . cwd . "\n");
+
+	opendir(DIR, ".");
+	my @filelist = sort(readdir(DIR));
+	closedir(DIR);
+
+	foreach my $file(@filelist)
+	{
+		if($file eq "." or $file eq "..") {next};
+
+		if (-d $file)
+		{
+		 	FindFiles( $file, $fileSearch, $searchType, $refFiles );
+		} else
+		{
+			if( ($file =~ m/$fileSearch/i and $searchType == 0) or ($file =~ m/$fileSearch$/i and $searchType == 1) )
+			{
+                $file = cwd . "/" . $file;
+				push @$refFiles, $file;
+				print("$file\n");
+			}
+		}
+	}
+
+	chdir ($startDir);
+}
+
+
+
+#------------------------------------------------------------------------------------
+# FindDirectory
+#
+# Parameters:
+#	$goDir, where to start finding
+#	$fileSearch, filename search
+#	$minSize, minimum size for the directory
+#
+# Returns the directory found.
+#------------------------------------------------------------------------------------
+sub FindDirectory
+{
+	my ($godir, $fileSearch, $dontCheckSubFolders, $minSize) = @_;
+
+	my $startDir = cwd;
+
+    #print("Now in $startDir\n");
+    print("minsize: $minSize for $fileSearch\n") if($minSize);
+
+	chdir($godir);
+
+	opendir(DIR, ".");
+	my @filelist = sort(readdir(DIR));
+	closedir(DIR);
+
+	foreach my $file(@filelist)
+	{
+		if($file eq "." or $file eq "..") {next};
+
+		if (-d $file)
+		{
+			print("($file - $fileSearch)\n");
+			if( $file =~ m/$fileSearch/i  )
+			{
+                if(!$minSize or DirSize($file) > $minSize)
+                {
+                    $file = cwd . "/" . $file;
+    				$file =~ s/\//\\/g;
+    				chdir ($startDir);
+    				return $file;
+    			}
+			}
+		}
+	}
+
+    return "" if($dontCheckSubFolders);
+
+    # Find subfolders
+	foreach my $file(@filelist)
+	{
+		if($file eq "." or $file eq "..") {next};
+
+		if (-d $file)
+		{
+		 	my $found = FindDirectory( $file, $fileSearch );
+		 	if($found ne "")
+		    {
+		        chdir ($startDir);
+		        $found =~ s/\//\\/g;
+		        return $found;
+		    }
+		}
+	}
+
+	chdir ($startDir);
+	return "";
+}
+
+
+#------------------------------------------------------------------------------------
+# FindFile
+#
+# Parameters:
+#	$goDir, where to start finding
+#	$fileSearch, filename search
+#   $minSize, minimum size for the file
+#
+# Returns the file found.
+#------------------------------------------------------------------------------------
+sub FindFile
+{
+	my ($godir, $fileSearch, $dontCheckSubFolders, $minSize) = @_;
+
+	my $startDir = cwd;
+
+    #print("Now in $startDir\n");
+
+	chdir($godir);
+
+	opendir(DIR, ".");
+	my @filelist = sort(readdir(DIR));
+	closedir(DIR);
+
+	foreach my $file(@filelist)
+	{
+		if($file eq "." or $file eq "..") {next};
+
+		if( $file =~ m/$fileSearch/i and !(-d $file) )
+		{
+            if(!$minSize or -s $file > $minSize)
+            {
+                $file = cwd . "/" . $file;
+    			$file =~ s/\//\\/g;
+    			chdir ($startDir);
+    			return $file;
+    		}
+		}
+	}
+
+    return "" if($dontCheckSubFolders);
+
+    # Find subfolders
+	foreach my $file(@filelist)
+	{
+		if($file eq "." or $file eq "..") {next};
+
+		if (-d $file)
+		{
+		 	my $found = FindFile( $file, $fileSearch );
+		 	if($found ne "")
+		    {
+		        chdir ($startDir);
+		        $found =~ s/\//\\/g;
+		        return $found;
+		    }
+		}
+	}
+
+	chdir ($startDir);
+	return "";
+}
+
+#------------------------------------------------------------------------------------
+# DirSize
+#
+# Parameters:
+#	$goDir, directory
+#
+# Returns the size of directory
+#------------------------------------------------------------------------------------
+sub DirSize
+{
+	my ($godir) = @_;
+
+	my $startDir = cwd;
+
+	chdir($godir);
+
+	opendir(DIR, ".");
+	my @filelist = sort(readdir(DIR));
+	closedir(DIR);
+
+    my $size = 0;
+
+	foreach my $file(@filelist)
+	{
+		if($file eq "." or $file eq "..") {next};
+
+		if (-d $file)
+		{
+			$size += DirSize($file);
+		}
+		else
+		{
+		    $size += -s $file;
+		}
+	}
+
+	chdir ($startDir);
+	return $size;
+}
+
+#------------------------------------------------------------------------------------
+# GetFilename
+#
+# Parameters:
+# 	$text
+#------------------------------------------------------------------------------------
+sub GetFilename
+{
+	my ($file) = @_;
+	$file =~ s/\//\\/g; # / -> \
+    my $pos = rindex($file, "\\");
+    die("Invalid path: $file\n") if($pos == -1);
+    return substr($file, $pos+1);
+}
+
+#------------------------------------------------------------------------------------
+# RemoveWhiteSpaces
+#
+# Parameters:
+# 	$text
+#------------------------------------------------------------------------------------
+sub RemoveWhiteSpaces()
+{
+	my ($text) = @_;
+	${$text} =~ s/\s+$//; #whitespaces in the end
+	${$text} =~ s/^\s+//; #whitespaces at the start
+}
+
+#------------------------------------------------------------------------------------
+# Timestamp
+#
+# Parameters:
+#------------------------------------------------------------------------------------
+sub Timestamp
+{
+    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
+
+    return "" . ($year+1900) . "-" . ($mon+1) . "-" . $mday . "-" . $hour . "-" . $min;
+}