--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/stif/TestModuleTemplates/STIFUnitXXX/CreateSTIFUnitModuleVar2.bat Tue Feb 02 01:57:15 2010 +0200
@@ -0,0 +1,168 @@
+::
+:: Copyright (c) 2009 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: This file contains capsmodifier implementation.
+::
+
+@perl -x CreateSTIFUnitModule.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
+@goto end
+
+#!perl
+use strict;
+use File::Find;
+
+# Verify command line parameters
+if ($#ARGV == -1 || $#ARGV > 1 )
+{
+ PrintHelp();
+}
+
+# Take module name
+my $moduleName = $ARGV[0];
+my $MODULENAME = $moduleName;
+$MODULENAME =~ tr/[a-z]/[A-Z]/;
+
+# Take target path or use default
+my $targetPath="\\";
+if ( $#ARGV == 1 )
+{
+ $targetPath = $ARGV[1];
+}
+
+
+# Create directory
+my $targetDir = $targetPath;
+
+unless(-d $targetDir)
+{
+ die ("Specified target path does not exists. Cannot create test module.\n");
+}
+
+print "Starting module creation to $targetDir\n";
+mkdir $targetDir, 0777 || die ("Can't create directory $targetDir");
+
+# Loop through the file structure
+find(\&renamerename, '.');
+
+unlink $targetDir."CreateSTIFUnitModuleVar2.bat";
+unlink $targetDir."CreateSTIFUnitModule.bat";
+unlink $targetDir."/group/$moduleName"."_nrm.mmp";
+
+ModifyBldInf();
+
+print "Module created to $targetDir\n";
+
+# This function will be called for each file or directory
+sub renamerename
+{
+ my $oldName = $_;
+ print "Processing $oldName\n";
+
+ # Construct new filename if that needed
+ s/STIFUnitXXX/$moduleName/i;
+ my $newName = $targetDir.$File::Find::dir."/".$_;
+
+ # Process directories
+ if (opendir(DIR, $oldName))
+ {
+ closedir (DIR);
+ mkdir $newName, 0777 || die ("Can't create directory $newName");
+ return;
+ }
+
+ if (uc($oldName) eq "BLD.INF")
+ {
+ print "Skipping $oldName\n";
+ return;
+ }
+
+ # Open input file
+ open (INFILE, $oldName ) || die ("Can not find $oldName");
+
+ #Open output file
+ my $newOutput = $newName."new";
+ open (OUTFILE, ">".$newOutput ) || die ("Can not open $newOutput");
+
+ # Replace text in files
+ while (<INFILE>)
+ {
+ s/STIFUnitXXX/$moduleName/g;
+ s/STIFUNITXXX/$MODULENAME/g;
+ s/XXX/$moduleName/g;
+ s/STIFUnitYYY/$targetDir/g;
+ print OUTFILE $_;
+ }
+
+ # Close filehandles
+ close (INFILE);
+ close (OUTFILE);
+
+ # Rename result file
+ rename $newOutput,$newName;
+}
+
+sub ModifyBldInf()
+{
+ print "Modifying bld.inf of existing project\n";
+ my $bldName = $targetDir."group/Bld.inf";
+ my $newBldName = $targetDir."group/Bld.inf.new";
+ my $found = 0;
+
+ open INFILE, $bldName or die "Cannot open $bldName: $!";
+ open (OUTFILE, ">".$newBldName) or die "Cannot create $newBldName: $!";
+
+ while (<INFILE>)
+ {
+ print OUTFILE $_ unless /^warning:/i;
+ if ($found eq 0 && trim(uc($_)) eq "PRJ_TESTMMPFILES")
+ {
+ print OUTFILE "$moduleName.mmp\n";
+ $found = 1;
+ }
+ }
+ if($found eq 0)
+ {
+ print OUTFILE "PRJ_TESTMMPFILES\n$moduleName.mmp\n";
+ }
+
+ close INFILE;
+ close OUTFILE;
+
+ rename $bldName, "$bldName.old" or die "Could not rename $bldName to $bldName.old\n";
+ rename $newBldName, $bldName or die "Could not rename $newBldName to $bldName\n";
+
+ print "Bld.inf file has been modified.\n";
+ print "Original file is stored as $bldName.old\n";
+}
+
+sub PrintHelp()
+{
+ print "createSTIFUnitModule ModuleName [path]\n";
+ print "\n";
+ print "Creates a new test module\n";
+ print "If [path] is not given, module is created to root of current drive.\n";
+ print "If [path] is given, it must contain the final \'\\\' in path name.\n";
+ print "Command must be executed in directory where the template exist.\n";
+ exit;
+}
+
+sub trim($)
+{
+ my $string = shift;
+ $string =~ s/^\s+//;
+ $string =~ s/\s+$//;
+ return $string;
+}
+
+__END__
+:end