tsrc/testing/tools/tsrpkgtool.pl
author hgs
Thu, 04 Nov 2010 11:16:56 +0200
changeset 71 60b4b6493d7b
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
71
hgs
parents:
diff changeset
     1
#
hgs
parents:
diff changeset
     2
# Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
# All rights reserved.
hgs
parents:
diff changeset
     4
# This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
# which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
#
hgs
parents:
diff changeset
     9
# Initial Contributors:
hgs
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
#
hgs
parents:
diff changeset
    12
# Contributors:
hgs
parents:
diff changeset
    13
#
hgs
parents:
diff changeset
    14
# Description: 
hgs
parents:
diff changeset
    15
#
hgs
parents:
diff changeset
    16
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    19
# Includes
hgs
parents:
diff changeset
    20
#------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    21
#use strict;
hgs
parents:
diff changeset
    22
use warnings;
hgs
parents:
diff changeset
    23
use Cwd; # for cwd
hgs
parents:
diff changeset
    24
use FindBin; # for FindBin:Bin
hgs
parents:
diff changeset
    25
use File::Path; # for mkpath
hgs
parents:
diff changeset
    26
use Date::Calc;
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    29
# GLOBAL CODE
hgs
parents:
diff changeset
    30
#------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
my $option = "";
hgs
parents:
diff changeset
    33
$option = shift(@ARGV) if( scalar(@ARGV) > 0 );
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
if( $option =~ m/\-h/i )
hgs
parents:
diff changeset
    36
{
hgs
parents:
diff changeset
    37
    print(
hgs
parents:
diff changeset
    38
    "tsrcpkgtool.pl\n" . 
hgs
parents:
diff changeset
    39
    " Toggles comments in all pkgs under tsrc folders for lines \n" .
hgs
parents:
diff changeset
    40
    " which have testframework.ini or cccccc00.cre cenrep.\n" . 
hgs
parents:
diff changeset
    41
    " Options:\n" . 
hgs
parents:
diff changeset
    42
    "  -h help\n  -r remove only\n  -a add only\n" );    
hgs
parents:
diff changeset
    43
    exit;
hgs
parents:
diff changeset
    44
} 
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
my @files;
hgs
parents:
diff changeset
    47
FindFiles(".", ".pkg", 1, \@files);
hgs
parents:
diff changeset
    48
FindFiles(".", ".inf", 1, \@files);
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
my $comment = ";TEMPCOMMENT ";
hgs
parents:
diff changeset
    51
my $comment_inf = "//TEMPCOMMENT ";
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
foreach my $file ( @files )
hgs
parents:
diff changeset
    55
{
hgs
parents:
diff changeset
    56
    if( $file =~ m/\/tsrc\//i )
hgs
parents:
diff changeset
    57
    {
hgs
parents:
diff changeset
    58
        open(FILE_HANDLE, $file) or die ("Could not read file '$file'\n");
hgs
parents:
diff changeset
    59
        my @lines = <FILE_HANDLE>;
hgs
parents:
diff changeset
    60
	    close(FILE_HANDLE);
hgs
parents:
diff changeset
    61
	    
hgs
parents:
diff changeset
    62
	    open(FILE_HANDLE, ">$file") or die ("Could not write file '$file'\n");
hgs
parents:
diff changeset
    63
	    foreach my $line ( @lines )
hgs
parents:
diff changeset
    64
	    {
hgs
parents:
diff changeset
    65
	        if( $line =~ /\.\.\/init\/testframework\.ini/i or $line =~ /\/cccccc00\.cre/i or
hgs
parents:
diff changeset
    66
	            $line =~ /\.\.\\init\\testframework\.ini/i or $line =~ /\\cccccc00\.cre/i )
hgs
parents:
diff changeset
    67
	        {
hgs
parents:
diff changeset
    68
	            my $filename = $file;
hgs
parents:
diff changeset
    69
	            $filename =~ s/\//\\/g;
hgs
parents:
diff changeset
    70
	            $filename = substr( $filename, rindex( $filename, "\\" )+1 );
hgs
parents:
diff changeset
    71
	            	            
hgs
parents:
diff changeset
    72
	            if( $line =~ /$comment/ )
hgs
parents:
diff changeset
    73
	            {
hgs
parents:
diff changeset
    74
	                if( $option ne "-a" )
hgs
parents:
diff changeset
    75
	                {
hgs
parents:
diff changeset
    76
	                    # Remove comment.
hgs
parents:
diff changeset
    77
	                    $line = substr( $line, length( $comment ) );
hgs
parents:
diff changeset
    78
	                    print("Removed comment: $filename.\n");
hgs
parents:
diff changeset
    79
	                }
hgs
parents:
diff changeset
    80
	            }
hgs
parents:
diff changeset
    81
	            elsif( $line =~ /$comment_inf/ )
hgs
parents:
diff changeset
    82
	            {
hgs
parents:
diff changeset
    83
	                if( $option ne "-a" )
hgs
parents:
diff changeset
    84
	                {
hgs
parents:
diff changeset
    85
	                    # Remove comment.
hgs
parents:
diff changeset
    86
	                    $line = substr( $line, length( $comment_inf ) );
hgs
parents:
diff changeset
    87
	                    print("Removed comment: $filename.\n");
hgs
parents:
diff changeset
    88
	                }
hgs
parents:
diff changeset
    89
	            }
hgs
parents:
diff changeset
    90
	            else
hgs
parents:
diff changeset
    91
	            {
hgs
parents:
diff changeset
    92
	                if( $option ne "-r" )
hgs
parents:
diff changeset
    93
	                {
hgs
parents:
diff changeset
    94
    	                # Add comment.
hgs
parents:
diff changeset
    95
    	                if( $filename =~ /\.inf/ ) {
hgs
parents:
diff changeset
    96
												$line = $comment_inf . $line;
hgs
parents:
diff changeset
    97
											}
hgs
parents:
diff changeset
    98
											else {
hgs
parents:
diff changeset
    99
												$line = $comment . $line;
hgs
parents:
diff changeset
   100
											}
hgs
parents:
diff changeset
   101
	                    print("Added comment: $filename.\n");
hgs
parents:
diff changeset
   102
	                }
hgs
parents:
diff changeset
   103
	            }
hgs
parents:
diff changeset
   104
	        }
hgs
parents:
diff changeset
   105
	        print FILE_HANDLE $line;
hgs
parents:
diff changeset
   106
	    }	    
hgs
parents:
diff changeset
   107
	    close(FILE_HANDLE);
hgs
parents:
diff changeset
   108
    }
hgs
parents:
diff changeset
   109
}
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
#------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   112
# FindFiles
hgs
parents:
diff changeset
   113
# Parameters:
hgs
parents:
diff changeset
   114
#	$goDir, where to start finding
hgs
parents:
diff changeset
   115
#	$fileSearch, filename search
hgs
parents:
diff changeset
   116
#	$searchType, 0 = fullname search, 1 = filetype search
hgs
parents:
diff changeset
   117
#	$refIncfiles, reference to array which will hold found files
hgs
parents:
diff changeset
   118
#------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   119
sub FindFiles
hgs
parents:
diff changeset
   120
{
hgs
parents:
diff changeset
   121
	my ($godir, $fileSearch, $searchType, $refIncfiles) = @_;
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
	my $startDir = cwd;
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
	chdir($godir);
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
	#print("Now in: " . cwd . "\n");
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
	opendir(DIR, ".");
hgs
parents:
diff changeset
   130
	my @filelist = sort(readdir(DIR));
hgs
parents:
diff changeset
   131
	closedir(DIR);
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
	foreach my $file(@filelist)
hgs
parents:
diff changeset
   134
	{
hgs
parents:
diff changeset
   135
		if($file eq "." or $file eq "..") {next};
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
		if (-d $file)
hgs
parents:
diff changeset
   138
		{
hgs
parents:
diff changeset
   139
		 	FindFiles( $file, $fileSearch, $searchType, $refIncfiles);
hgs
parents:
diff changeset
   140
		} else
hgs
parents:
diff changeset
   141
		{
hgs
parents:
diff changeset
   142
			if( ($file =~ m/$fileSearch/i and $searchType == 0 ) or ($file =~ m/$fileSearch$/i and $searchType == 1 ) )
hgs
parents:
diff changeset
   143
			{
hgs
parents:
diff changeset
   144
                $file = cwd . "/" . $file;
hgs
parents:
diff changeset
   145
				push @$refIncfiles, $file;
hgs
parents:
diff changeset
   146
				#print("$file\n");
hgs
parents:
diff changeset
   147
			}
hgs
parents:
diff changeset
   148
		}
hgs
parents:
diff changeset
   149
	}
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
	chdir ($startDir);
hgs
parents:
diff changeset
   152
}