os/kernelhwsrv/kernel/eka/rombuild/cptest.pl
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
#
sl@0
     2
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     3
# All rights reserved.
sl@0
     4
# This component and the accompanying materials are made available
sl@0
     5
# under the terms of the License "Eclipse Public License v1.0"
sl@0
     6
# which accompanies this distribution, and is available
sl@0
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
#
sl@0
     9
# Initial Contributors:
sl@0
    10
# Nokia Corporation - initial contribution.
sl@0
    11
#
sl@0
    12
# Contributors:
sl@0
    13
#
sl@0
    14
# Description:
sl@0
    15
#
sl@0
    16
sl@0
    17
use Cwd;
sl@0
    18
use Getopt::Long;
sl@0
    19
my %opts=();
sl@0
    20
my $result = GetOptions (	\%opts,
sl@0
    21
							"iby=s",
sl@0
    22
							"build=s",
sl@0
    23
							"drive=s",
sl@0
    24
							"udir=s",
sl@0
    25
							"kdir=s",
sl@0
    26
							"zip=s",
sl@0
    27
							"verbose"
sl@0
    28
							);
sl@0
    29
sl@0
    30
sl@0
    31
if (!$result || !$opts{iby} || !$opts{build}) {
sl@0
    32
	usage();
sl@0
    33
	exit;
sl@0
    34
}
sl@0
    35
my $IbyFileName = $opts{iby};
sl@0
    36
open IBY, $IbyFileName or die "Cannot open IBY file $IbyFileName\n";
sl@0
    37
my $build = $opts{build};
sl@0
    38
my $srcdrv = Cwd::getcwd();
sl@0
    39
$srcdrv=~/(\w\:).*/;
sl@0
    40
$srcdrv=$1;
sl@0
    41
if ($opts{drive}) {
sl@0
    42
	$srcdrv=$opts{drive};
sl@0
    43
}
sl@0
    44
my $udir = $opts{udir};
sl@0
    45
my $kdir = $opts{kdir};
sl@0
    46
my $zip = $opts{zip};
sl@0
    47
my $verbose = $opts{verbose};
sl@0
    48
sl@0
    49
if ($verbose) {
sl@0
    50
	print "IBY file  : $IbyFileName\n";
sl@0
    51
	print "Build     : $build\n";
sl@0
    52
	print "Drive     : $srcdrv\n";
sl@0
    53
	print "User Dir  : $udir\n";
sl@0
    54
	print "Kernel Dir: $kdir\n";
sl@0
    55
	print "ZIP file  : $zip\n";
sl@0
    56
}
sl@0
    57
sl@0
    58
while(<IBY>) {
sl@0
    59
	if (/^\s*\/\//) {
sl@0
    60
		print "Comment: $_\n" if ($verbose);
sl@0
    61
		next;
sl@0
    62
	}
sl@0
    63
	/^\s*(\w+)(.*)$/;
sl@0
    64
	my $keyword=$1;
sl@0
    65
	my $rest=$2;
sl@0
    66
	unless ($keyword eq 'file' or $keyword eq 'data' or $keyword eq 'dll' or $keyword eq 'device') {
sl@0
    67
		next;
sl@0
    68
	}
sl@0
    69
	if ($rest=~/^\s*\[\w+\](.*)$/) {
sl@0
    70
		$rest=$1;	# lose [MAGIC]
sl@0
    71
	}
sl@0
    72
	next unless ($rest=~/^\s*\=\s*(.*)$/);
sl@0
    73
	$rest=$1;
sl@0
    74
	my @word=split /\s+/, $rest;
sl@0
    75
	my $source=$word[0];
sl@0
    76
	my $dest=$word[1];
sl@0
    77
	$source=~ s/##BUILD##/$build/g;
sl@0
    78
	$source=~ s/##MAIN##/$udir/g;
sl@0
    79
	$source=~ s/##ASSP##/$kdir/g;
sl@0
    80
	$source=~ s/##KMAIN##/$kdir/g;
sl@0
    81
	$source=~ s/##ELOCLDIR##/$udir/g;
sl@0
    82
	$source=$srcdrv.$source;
sl@0
    83
#	print "$source->$dest\n";
sl@0
    84
	my @destpath=split /(\/|\\)/,$dest;
sl@0
    85
	while ($destpath[0]=~/^\s*$/ or $destpath[0] eq '\\' or $destpath[0] eq '\/') {
sl@0
    86
		shift @destpath;
sl@0
    87
	}
sl@0
    88
	my $npathc=scalar(@destpath);
sl@0
    89
	my $destfilename=pop @destpath;
sl@0
    90
	my $destdirname=join '', @destpath;
sl@0
    91
	if ($destdirname=~/^(.*)\\\s*$/) {
sl@0
    92
		$destdirname=$1;
sl@0
    93
	}
sl@0
    94
	if ($destdirname=~/^\\(.*?)$/) {
sl@0
    95
		$destdirname=$1;
sl@0
    96
	}
sl@0
    97
	print "$source->$destfilename @ $destdirname $npathc\n" if ($verbose);
sl@0
    98
	unless (-d $destdirname) {
sl@0
    99
		system "md $destdirname";
sl@0
   100
	}
sl@0
   101
	if (-e $source) {
sl@0
   102
		system "copy $source $destdirname\\$destfilename >NUL";
sl@0
   103
	} else {
sl@0
   104
		warn "$source not found\n";
sl@0
   105
	}
sl@0
   106
}
sl@0
   107
if ($zip) {
sl@0
   108
	unless ($zip =~ /^(.*?)\.zip$/i) {
sl@0
   109
		$zip .= '.zip';
sl@0
   110
	}
sl@0
   111
	system "del $zip";
sl@0
   112
	system "zip -r $zip *";
sl@0
   113
}
sl@0
   114
sl@0
   115
exit;
sl@0
   116
sl@0
   117
# END OF MAIN
sl@0
   118
sl@0
   119
sub usage {
sl@0
   120
	print <<EOT;
sl@0
   121
sl@0
   122
perl cptest.pl <options>
sl@0
   123
sl@0
   124
Copy tests to target directory structure
sl@0
   125
sl@0
   126
The following options are required:
sl@0
   127
  -i, --iby = <IBY file name>
sl@0
   128
  -b, --build = <build>         UDEB or UREL
sl@0
   129
sl@0
   130
The following are optional:
sl@0
   131
  -d, --drive = <drive with executables on>
sl@0
   132
sl@0
   133
         Defaults to current drive
sl@0
   134
sl@0
   135
  -u, --udir = <user directory>	  e.g. ARM4, X86
sl@0
   136
  -k, --kdir = <kernel directory> e.g. MISA, NX86
sl@0
   137
  -z, --zip = <zipfile name>
sl@0
   138
  -v, --verbose
sl@0
   139
sl@0
   140
EOT
sl@0
   141
}
sl@0
   142