diff -r 000000000000 -r a41df078684a kernel/eka/rombuild/cptest.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/rombuild/cptest.pl Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,142 @@ +# +# 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 the License "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: +# + +use Cwd; +use Getopt::Long; +my %opts=(); +my $result = GetOptions ( \%opts, + "iby=s", + "build=s", + "drive=s", + "udir=s", + "kdir=s", + "zip=s", + "verbose" + ); + + +if (!$result || !$opts{iby} || !$opts{build}) { + usage(); + exit; +} +my $IbyFileName = $opts{iby}; +open IBY, $IbyFileName or die "Cannot open IBY file $IbyFileName\n"; +my $build = $opts{build}; +my $srcdrv = Cwd::getcwd(); +$srcdrv=~/(\w\:).*/; +$srcdrv=$1; +if ($opts{drive}) { + $srcdrv=$opts{drive}; +} +my $udir = $opts{udir}; +my $kdir = $opts{kdir}; +my $zip = $opts{zip}; +my $verbose = $opts{verbose}; + +if ($verbose) { + print "IBY file : $IbyFileName\n"; + print "Build : $build\n"; + print "Drive : $srcdrv\n"; + print "User Dir : $udir\n"; + print "Kernel Dir: $kdir\n"; + print "ZIP file : $zip\n"; +} + +while() { + if (/^\s*\/\//) { + print "Comment: $_\n" if ($verbose); + next; + } + /^\s*(\w+)(.*)$/; + my $keyword=$1; + my $rest=$2; + unless ($keyword eq 'file' or $keyword eq 'data' or $keyword eq 'dll' or $keyword eq 'device') { + next; + } + if ($rest=~/^\s*\[\w+\](.*)$/) { + $rest=$1; # lose [MAGIC] + } + next unless ($rest=~/^\s*\=\s*(.*)$/); + $rest=$1; + my @word=split /\s+/, $rest; + my $source=$word[0]; + my $dest=$word[1]; + $source=~ s/##BUILD##/$build/g; + $source=~ s/##MAIN##/$udir/g; + $source=~ s/##ASSP##/$kdir/g; + $source=~ s/##KMAIN##/$kdir/g; + $source=~ s/##ELOCLDIR##/$udir/g; + $source=$srcdrv.$source; +# print "$source->$dest\n"; + my @destpath=split /(\/|\\)/,$dest; + while ($destpath[0]=~/^\s*$/ or $destpath[0] eq '\\' or $destpath[0] eq '\/') { + shift @destpath; + } + my $npathc=scalar(@destpath); + my $destfilename=pop @destpath; + my $destdirname=join '', @destpath; + if ($destdirname=~/^(.*)\\\s*$/) { + $destdirname=$1; + } + if ($destdirname=~/^\\(.*?)$/) { + $destdirname=$1; + } + print "$source->$destfilename @ $destdirname $npathc\n" if ($verbose); + unless (-d $destdirname) { + system "md $destdirname"; + } + if (-e $source) { + system "copy $source $destdirname\\$destfilename >NUL"; + } else { + warn "$source not found\n"; + } +} +if ($zip) { + unless ($zip =~ /^(.*?)\.zip$/i) { + $zip .= '.zip'; + } + system "del $zip"; + system "zip -r $zip *"; +} + +exit; + +# END OF MAIN + +sub usage { + print < + +Copy tests to target directory structure + +The following options are required: + -i, --iby = + -b, --build = UDEB or UREL + +The following are optional: + -d, --drive = + + Defaults to current drive + + -u, --udir = e.g. ARM4, X86 + -k, --kdir = e.g. MISA, NX86 + -z, --zip = + -v, --verbose + +EOT +} +