activityfw/sis/edit_pkg.pl
changeset 61 8e5041d13c84
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/activityfw/sis/edit_pkg.pl	Fri Apr 16 15:16:09 2010 +0300
@@ -0,0 +1,224 @@
+#
+# 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: 
+#
+#Options:
+# -version  -adds Qt version (4,6,0) intp pkg files
+# -target  -replaces $(PLATFORM)/$(TARGET) into armv5/urel
+# -test  -creates script for test app
+# default -version
+
+use strict;
+use File::Find;
+my $base = `cd`;
+$base =~ s/\\\w+\s+$//; #move one dir upper 
+my $modulebase = `cd`;
+$modulebase =~s/(\s+)$//; #remove linefeed from end
+print $base;;
+my $qtversion = "\, 4\, 6\, 0\,";
+my $target = "armv5\/urel";
+
+my $qtversionchnage = 0;
+my $qtversionarg = "-version";
+my $targetchnage = 0;
+my $targetarg = "-target";
+my $module = 0;
+my $modulearg = "-test";
+my $delmodule = 0;
+my $delmodulearg = "-delmodule";
+my $moduledir = "testsis";
+my $modulepath = $base."\\".$moduledir;
+my $ccert = $modulebase."\\"."cert.cer";
+my $ckey = $modulebase."\\"."key.pem";
+my $modulebatpath = $modulebase."\\".$moduledir."\\createmodulesis.bat"; 
+
+checkCmdLine();
+
+if ( $qtversionchnage == 1 || $targetchnage == 1 )
+	{
+	find( \&edits, $base );
+	}
+if ( $module == 1 )
+	{
+	system "mkdir $moduledir";
+	if ( not ( open (FWM, ">$modulebatpath") ) )
+		{
+		print "\n***Error: Couldn't open $modulebatpath file to write\n";
+		return;
+		}
+	binmode FWM;
+	print FWM "del /S/Q *.SIS\r\n";
+	print FWM "del /S/Q *.SISX\r\n";
+	close FWM;	
+	find( \&moduleSis, $base );
+	}	
+if ( $delmodule == 1 )
+	{
+	find( \&delModuleSis, $base );
+	}	
+
+sub edits() 
+	{
+	my $file=$_;
+	my $winpath=$File::Find::name;
+	$winpath=~s/\//\\/g;
+	if( -f $file  && $file=~/(_template\.pkg)$/i ) 
+		{
+		print "$winpath ";
+		system "attrib -R $winpath";
+		if ( not ( open (FR, $winpath) ) )
+			{
+			print "Error: Couldn't open $winpath file to read\n";
+			return;
+			}
+		binmode FR;
+		my $buf="";
+		my $length = 0;
+		$length = -s $winpath;
+		read( FR, $buf, $length );
+		close FR;
+		if ( $qtversionchnage == 1 )
+			{
+			$buf =~s/\,\s*\,\s*\,\s*\,\s*\{\"Qt\"\}/$qtversion \{\"Qt\"\}/si;
+			}
+		if ( $targetchnage == 1 )
+			{
+			$buf =~s/\$\(PLATFORM\)\/\$\(TARGET\)/$target/si;
+			}
+	    
+	    if ( not ( open (FW, ">$winpath") ) )
+			{
+			print "\n***Error: Couldn't open $winpath file to write\n";
+			return;
+			}
+		binmode FW;		
+		print FW $buf;
+	    close FW;		
+		
+		print "\r\n";
+		}
+	}
+
+sub checkCmdLine()
+	{
+	my $numArgs = $#ARGV + 1;
+	if ( $numArgs == 0 )
+		{
+		$qtversionchnage = 1;
+		}
+	else
+		{
+		foreach my $argnum ( 0 .. $#ARGV ) 
+			{
+			my $argName = lc $ARGV[$argnum];
+			if ( $argName eq $qtversionarg )
+				{
+				$qtversionchnage = 1;
+				}
+			elsif ( $argName eq $targetarg )
+				{
+				$targetchnage = 1;
+				}
+			elsif ( $argName eq $modulearg )
+				{
+				$module = 1;
+				}
+			elsif ( $argName eq $delmodulearg )
+				{
+				$delmodule = 1;
+				}
+			else
+				{
+				die "\n***Error: Bad arguments\n";
+				}
+			}
+		}
+	}
+	
+sub moduleSis()
+	{
+	my $file=$_;
+	my $winpath=$File::Find::name;
+	$winpath=~s/\//\\/g;	
+
+	
+	if( -f $file  && $file=~/(.*test.*_template\.pkg)$/i ) 
+		{
+		print "$winpath ";
+		system "attrib -R $winpath";
+		if ( not ( open (FR, $winpath) ) )
+			{
+			print "Error: Couldn't open $winpath file to read\n";
+			return;
+			}
+		binmode FR;
+		my $buf="";
+		my $length = 0;
+		$length = -s $winpath;
+		read( FR, $buf, $length );
+		close FR;
+		$buf =~s/\,\s*\,\s*\,\s*\,\s*\{\"Qt\"\}/$qtversion \{\"Qt\"\}/si;
+		$buf =~s/\$\(PLATFORM\)\/\$\(TARGET\)/$target/si;
+	    
+	    if ( not ( open (FW, ">$winpath") ) )
+			{
+			print "Error: Couldn't open $winpath file to write\n";
+			return;
+			}
+		binmode FW;		
+		print FW $buf;
+	    close FW;				
+		print "\r\n";
+		
+		my $pkgname = sisName( $winpath );
+		
+		if ( not ( open (FWM2, ">>$modulebatpath") ) )
+			{			
+			print "Error: Couldn't open $modulebatpath file to append\n";
+			return;
+			}
+		binmode FWM2;		
+		print FWM2 "makesis $winpath $pkgname\.SIS\r\n";
+		print FWM2 "signsis $pkgname\.SIS $pkgname\.SISX $ccert $ckey\r\n";
+		close FWM2;	
+		}	
+	}
+		
+sub sisName()
+	{
+	my $path = shift;
+	my $name = "";
+	if ( $path =~ /\\(\w+)\.pkg/i )
+		{
+		$name = $1;
+		}
+	return $name;
+	}
+	
+sub delModuleSis()
+	{
+	my $file=$_;
+	my $winpath=$File::Find::name;
+	$winpath=~s/\//\\/g;	
+
+	
+	if( -f $file  && $file=~/(_template\.pkg)$/i && ( $file=~/^(t_)/i || $file=~/test/i ) ) 
+		{
+		print "Deleting: ";
+		print "$winpath ";
+		system "attrib -R $winpath";
+		system "del /S/Q $winpath";
+		print "\r\n";
+		}	
+	}	
\ No newline at end of file