--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/testapplications/generator/generator/generate.pl Thu Sep 16 12:11:40 2010 +0100
@@ -0,0 +1,162 @@
+use strict;
+use File::Find;
+
+my $appnum = shift;
+my $baseuid = 0xA000018A;
+my $baseuidstr = uid( 1 );
+my $base = `cd`;
+$base =~s/(\s+)$//; #remove linefeed from end
+my $patternbase = $base."\\pattern";
+my $globaliter = 0;
+
+generate();
+
+sub generate()
+ {
+ my $i = 0;
+ for ( $i=1; $i<=$appnum; $i++ )
+ {
+ $globaliter = $i;
+ createappdir($globaliter);
+ find( \&reader, $patternbase );
+ }
+ createpkg();
+ creategroup();
+ system "perl devide_sis.pl $appnum";
+ }
+
+sub uid
+ {
+ my $iter = shift;
+ my $uuid = $baseuid + $iter -1;
+ my $hu = sprintf '%#X', $uuid;
+ $hu =~s/X/x/;
+ return $hu;
+ }
+
+sub reader()
+ {
+ my $file=$_;
+ my $winpath=$File::Find::name;
+ $winpath=~s/\//\\/g;
+ my $nefilepath = "";
+ if ( -f $file && not($winpath =~/svn/) )
+ {
+ $nefilepath = newpath( $winpath, $globaliter );
+ my $appuid = uid( $globaliter );
+ rewritefile( $winpath, $nefilepath, $globaliter, $appuid );
+ }
+ }
+
+sub newpath()
+{
+ my $patternpath = shift;
+ my $iter = shift;
+ my $appdir = "helloworldbasic".$iter;
+ my $appbasicfilepath = "basic".$iter;
+ my $appBasicfilepath = "Basic".$iter;
+ $patternpath =~ s/basic1/$appbasicfilepath/;
+ $patternpath =~ s/Basic1/$appBasicfilepath/;
+ $patternpath =~ s/pattern/$appdir/;
+ return $patternpath;
+}
+
+sub createappdir()
+{
+ my $iter = shift;
+ my $appdir = "helloworldbasic".$iter;
+ my $src = $appdir."\\src";
+ my $inc = $appdir."\\inc";
+ my $data = $appdir."\\data";
+ my $sis = $appdir."\\sis";
+ my $group = $appdir."\\group";
+ system "mkdir $appdir";
+ system "mkdir $src";
+ system "mkdir $inc";
+ system "mkdir $data";
+ system "mkdir $sis";
+ system "mkdir $group";
+}
+
+sub rewritefile()
+{
+ my $input = shift;
+ my $output = shift;
+ my $iter = shift;
+ my $uid = shift;
+ my $basic = "basic".$iter;
+ my $Basic = "Basic".$iter;
+ my $World = "World".$iter;
+
+ open FRI, $input or die "Couldn't open $input to read";
+ binmode FRI;
+ open FWO, ">$output" or die "Couldn't open $output to write";
+ binmode FWO;
+ while( <FRI> )
+ {
+ my $line = $_;
+ $line =~ s/basic1/$basic/g;
+ $line =~ s/Basic1/$Basic/g;
+ $line =~ s/World1/$World/g;
+ $line =~ s/$baseuidstr/$uid/gi;
+ print FWO $line;
+ }
+ close FRI;
+ close FWO;
+}
+
+sub createpkg()
+{
+ system "mkdir sis";
+ open FRS, ".\\pattern\\sis\\helloworldbasic_armv5.pkg" or die "Couldn't open pkg file to read";
+ binmode FRS;
+ open FWS, ">sis\\helloworldbasic_armv5.pkg" or die "Couldn't open pkg file to write";
+ binmode FWS;
+ my @exports;
+ my $begin = 0;
+
+ while ( <FRS> )
+ {
+ my $line = $_;
+ print FWS $line;
+ if ($line =~ /;Files/)
+ {
+ $begin = 1;
+ }
+ if ($begin == 1)
+ {
+ push(@exports, $line);
+ }
+ }
+ close FRS;
+
+ for (my $i=2; $i<=$globaliter; $i++)
+ {
+ my $basic = "basic".$i;
+ my $Basic = "Basic".$i;
+ my $it = 0;
+ while (defined($exports[$it]))
+ {
+ my $line = $exports[$it];
+ $line =~ s/basic1/$basic/g;
+ $line =~ s/Basic1/$Basic/g;
+ print FWS $line;
+ $it++;
+ }
+ print FWS "\r\n\r\n";
+ }
+ close FWS;
+}
+
+sub creategroup()
+ {
+ system "mkdir group";
+ open FWG, ">group\\bld.inf" or die "Couldn't open bld.inf file to write";
+ binmode FWG;
+ for (my $i=1; $i<=$globaliter; $i++)
+ {
+ my $path = "../helloworldbasic".$i."/group/bld.inf";
+ print FWG "\#include \"$path\"\r\n";
+ }
+ }
+ close FWG;