tsrc/testing/tools/tsrpkgtool.pl
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/testing/tools/tsrpkgtool.pl	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,152 @@
+#
+# 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;
+
+#------------------------------------------------------------------------------------
+# GLOBAL CODE
+#------------------------------------------------------------------------------------
+
+my $option = "";
+$option = shift(@ARGV) if( scalar(@ARGV) > 0 );
+
+if( $option =~ m/\-h/i )
+{
+    print(
+    "tsrcpkgtool.pl\n" . 
+    " Toggles comments in all pkgs under tsrc folders for lines \n" .
+    " which have testframework.ini or cccccc00.cre cenrep.\n" . 
+    " Options:\n" . 
+    "  -h help\n  -r remove only\n  -a add only\n" );    
+    exit;
+} 
+
+my @files;
+FindFiles(".", ".pkg", 1, \@files);
+FindFiles(".", ".inf", 1, \@files);
+
+my $comment = ";TEMPCOMMENT ";
+my $comment_inf = "//TEMPCOMMENT ";
+
+
+foreach my $file ( @files )
+{
+    if( $file =~ m/\/tsrc\//i )
+    {
+        open(FILE_HANDLE, $file) or die ("Could not read file '$file'\n");
+        my @lines = <FILE_HANDLE>;
+	    close(FILE_HANDLE);
+	    
+	    open(FILE_HANDLE, ">$file") or die ("Could not write file '$file'\n");
+	    foreach my $line ( @lines )
+	    {
+	        if( $line =~ /\.\.\/init\/testframework\.ini/i or $line =~ /\/cccccc00\.cre/i or
+	            $line =~ /\.\.\\init\\testframework\.ini/i or $line =~ /\\cccccc00\.cre/i )
+	        {
+	            my $filename = $file;
+	            $filename =~ s/\//\\/g;
+	            $filename = substr( $filename, rindex( $filename, "\\" )+1 );
+	            	            
+	            if( $line =~ /$comment/ )
+	            {
+	                if( $option ne "-a" )
+	                {
+	                    # Remove comment.
+	                    $line = substr( $line, length( $comment ) );
+	                    print("Removed comment: $filename.\n");
+	                }
+	            }
+	            elsif( $line =~ /$comment_inf/ )
+	            {
+	                if( $option ne "-a" )
+	                {
+	                    # Remove comment.
+	                    $line = substr( $line, length( $comment_inf ) );
+	                    print("Removed comment: $filename.\n");
+	                }
+	            }
+	            else
+	            {
+	                if( $option ne "-r" )
+	                {
+    	                # Add comment.
+    	                if( $filename =~ /\.inf/ ) {
+												$line = $comment_inf . $line;
+											}
+											else {
+												$line = $comment . $line;
+											}
+	                    print("Added comment: $filename.\n");
+	                }
+	            }
+	        }
+	        print FILE_HANDLE $line;
+	    }	    
+	    close(FILE_HANDLE);
+    }
+}
+
+#------------------------------------------------------------------------------------
+# FindFiles
+# Parameters:
+#	$goDir, where to start finding
+#	$fileSearch, filename search
+#	$searchType, 0 = fullname search, 1 = filetype search
+#	$refIncfiles, reference to array which will hold found files
+#------------------------------------------------------------------------------------
+sub FindFiles
+{
+	my ($godir, $fileSearch, $searchType, $refIncfiles) = @_;
+
+	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, $refIncfiles);
+		} else
+		{
+			if( ($file =~ m/$fileSearch/i and $searchType == 0 ) or ($file =~ m/$fileSearch$/i and $searchType == 1 ) )
+			{
+                $file = cwd . "/" . $file;
+				push @$refIncfiles, $file;
+				#print("$file\n");
+			}
+		}
+	}
+
+	chdir ($startDir);
+}