build/tools/check_filename_uniq.pl
branchRCL_3
changeset 21 ea3e26ea6629
parent 6 c8ecf89eb77f
--- a/build/tools/check_filename_uniq.pl	Sat Feb 20 00:39:01 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,299 +0,0 @@
-#
-# Copyright (c) 2002-2006 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:  See the usage-method below.
-#
-
-use File::Find;
-use File::Spec;
-use Getopt::Long;
-use strict;
-
-my $isFirstError = 1;
-my @dirList;
-my $resultFile = undef;
-my %extHash; # hash which contains the wanted extensions as keys
-
-my $errString = qq(
-The following filenames are not unique inside ADO. Note that if those
-files are not part of compilation (listed in used bld.inf) => there 
-are no immediate problems.
-
-);
-
-
-###########################################
-# Conversion routine. 
-#  - makes all dir separators to be "/"
-#  - removes any drive letter from beginig of path
-#########################################
-sub convertPath
-{
-    my $path = shift;
-    $path =~ s/\\/\//g;
-    $path =~ s/^[A-Za-z]\://;
-    $path =~ tr/A-Z/a-z/;
-    
-    return $path;
-}
-
-###########################################################################
-###########################################################################
-sub usage
-{
-    print "\n";
-    print "This script is intended to check the architectural domain (ADO)\n";
-    print "directory hierarchy content in S60-build.\n";
-    print "It checks that the filenames with given extensions\n";
-    print "are uniq inside the give ADO structure.\n";
-    print "\n";
-    print "Usage:\n";
-    print "  $0 [-h|-help] [-t <theResultFilename>] [-e ext1 -e ext2] -d <dir1> -d <dir2> \n";
-    print "\n";
-    print "Options:\n";
-    print "  -h                  : Show this help\n";
-    print "  -help               : Show this help\n";
-    print "  -t <theFilename>    : The name of the file, where the errors are written.\n";
-    print "                        If not specified errors are written to STDOUT\n";
-    print "  -d <dir1>           : Absoluth path to the ADOs directory. The last item in the dir\n";
-    print "                        should be the ADO name.\n";
-    print "  -e <ext1>           : file extensions that are checked.\n";
-    print "                        If none given, then default value is \"-e mmp,mk\". \n";
-    print "                        If one is specified then the default ones are not handled by default.\n";  
-    print "\n";
-    print "Return values:\n";
-    print "    0 : no errors found (or help wanted)\n";
-    print "   -1 : errors found in check\n";
-    print "   -2 : erronous command line parameters or in result file opening\n";
-    print "\n";
-    print "Usage example:\n";
-    print "   in the below example replace \"<myadoname>\" with real ado name\n";
-    print "   for example  <myadoname> == messaging\n";
-    print "   perl $0 -t \my_path_results.txt -d \s60\app\<myadoname>\n";
-    print "\n";
-    print "   Below one only checks txt-files\n";
-    print "   perl $0 -t \my_path_results.txt -e txt -d \s60\app\<myadoname>\n";
-    print "\n";
-    print "Limitations:\n";
-    print "  - No spaces allowed in the file or directory names !!!\n";
-    print "\n";
-}
-
-###########################################################################
-###########################################################################
-sub errorUsage
-{
-    usage;
-    exit(-2);
-}
-###########################################################################
-###########################################################################
-sub okUsage
-{
-    usage;
-    exit(0);
-}
-
-###########################################################################
-# print results
-###########################################################################
-sub printError
-{
-
-    if(defined($resultFile))
-    {
-	if($isFirstError > 0)
-	{
-	    $isFirstError = 0;
-	    print FILEOUT $errString;
-	}
-	print FILEOUT join("",@_);;
-    }
-    else
-    {
-	if($isFirstError > 0)
-	{
-	    $isFirstError = 0;
-	    print STDOUT $errString;
-	}
-	print STDOUT join("",@_);
-    }
-}
-
-
-###########################################################################
-# Parses the command line parameters from ARGV
-#
-# Params: -
-#
-# Return: -		    
-#
-###########################################################################
-sub parseCmdLine
-{
-    my $incorrectParam = 0;
-    my @extList;
-    
-    if( ! GetOptions('t=s'      => \$resultFile,
-		     'd=s'      => \@dirList,
-		     'e=s'      => \@extList,
-		     'h'        => \&okUsage,
-		     'help'     => \&okUsage,
-		     '<>'       => \&errorUsage))
-    {
-	exit(-2);
-    }
-
-    if(scalar(@dirList) == 0)
-    {
-	print STDERR  "\nERROR: At least one directory has to be specified with -d\n";
-	exit(-2);
-    }
-
-    foreach  (@dirList)
-    {
-	if(/\s+/)
-	{
-	    print STDERR "\nERROR: No spaces allowed in directory names\n";
-	    exit(-2);
-	}
-    }
-
-    # if no ext given => use the default values.
-    if(scalar(@extList) == 0)
-    {
-	$extHash{"mmp"} = 1;
-	$extHash{"mk"} = 1;
-    }
-    else
-    {
-	# handle the extensions given	
-	foreach my $param (@extList)
-	{
-	    my @items = split(",",$param);
-	    foreach my $item (@items)
-	    {
-		# remove spaces
-		$item =~ s/\s//g;
-		$item = convertPath($item);
-		$extHash{$item} = 1; 
-	    }
-	}
-    }
-}
-
-###########################################################################
-###########################################################################
-sub handleFileopenError
-{
-    print STDERR  "\nERROR: Unable to open  $resultFile\n";
-    exit(-2);
-}
-
-
-###########################################
-# This function is called for each file by 
-# the "find" functionality.
-###########################################
-# contains all the erronous file names, details in the 
-# $refToFileHash
-my $refToErrHash;
-# content is:
-# {filenamewithExt => (foundInDir1,foundInDir2)} 
-my $refToFileHash; 
-
-#actual function
-sub handleFile
-{
-    my $file = convertPath($_);
-    my $fileDir = convertPath(File::Spec->catfile(File::Spec->splitdir($File::Find::dir)));
-
-    # the find seems to change the current dir => checking if the item is a dir
-    # should be done from curr Dir (we need to add the ./ so that the -d (testing if
-    # item is directory works)
-    if( -d "./$file")
-    {
-	return;
-    }
-
-    # its a file, test wether the extension is what we want
-    my @tmpList = split(/\./,$file);
-    my $ext = pop @tmpList;
-
-    if(defined($extHash{$ext}))
-    {
-	# is there same name already => if yes => error
-	if(defined($$refToFileHash{$file}))
-	{
-	    $$refToErrHash{$file}  = 1;
-	}
-	# 1st occurance. Add as new item into the refToFileHash
-	else
-	{
-	    my @list;
-	    $$refToFileHash{$file} = \@list;
-	}
-	push(@{$$refToFileHash{$file}},$fileDir);
-    }
-}
-
-###########################################################################
-# MAIN functionality
-###########################################################################
-parseCmdLine;
-if(defined($resultFile))
-{
-    open(FILEOUT,">$resultFile") || handleFileopenError;
-}
-
-# handle each root dir as separate case. This way
-# we do not have to worry about stuff between dirs
-foreach my $dir (@dirList)
-{
-    my %errFileHash;
-    $refToErrHash = \%errFileHash;
-    my %fileHash;
-    $refToFileHash = \%fileHash;
-    
-    find(\&handleFile,($dir));
-    
-    # After one base dir has been handled, then print the found
-    # errors related to that one.
-
-    if(scalar(keys(%errFileHash)) > 0)
-    {
-	printError "\nUnder: $dir\n";
-	foreach my $errFile (keys (%errFileHash))
-	{
-	    printError "   $errFile found in:\n";
-	    foreach my $fileLoc (@{$fileHash{$errFile}})
-	    {
-		printError "      $fileLoc\n";
-	    }
-	}
-    }
-    else
-    {
-	printError "\nNo errors found under $dir\n";
-    }
-}
-
-if(defined($resultFile))
-{
-    close FILEOUT;
-}
-
-
-
-
-