diff -r 3ab5c078b490 -r c63ee96dbe5f taskswitcher/testapplications/generator/generator/generate.pl --- /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( ) + { + 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 ( ) + { + 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;