common/tools/ats/hlm_fix_pkg_files.pl
author Maciej Seroka <maciejs@symbian.org>
Thu, 01 Jul 2010 13:15:30 +0100
changeset 1119 9d4b5a298764
permissions -rw-r--r--
Added script for fixing pkg files so that they can be used by Helium test drop generator
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1119
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     1
#!/usr/bin/perl
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     2
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     3
# Copyright (c) 2009 Symbian Foundation Ltd
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     4
# This component and the accompanying materials are made available
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     6
# which accompanies this distribution, and is available
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     8
#
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     9
# Initial Contributors:
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    10
# Symbian Foundation Ltd - initial contribution.
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    11
#   Maciej Seroka, maciej@symbian.org
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    12
#
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    13
# Description:
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    14
#   This is a script for fixing pkg files.
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    15
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    16
use strict;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    17
use File::Copy;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    18
use Tie::File;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    19
use File::Find;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    20
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    21
my @files;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    22
my @lines;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    23
my $file;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    24
my $n;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    25
my $file_fixed;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    26
sub Wanted;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    27
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    28
my $package_path;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    29
if ($ARGV[0]) {
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    30
  $package_path = $ARGV[0];
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    31
 }
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    32
else { die "Missing parameter \"package path\". For example: D:\\sf\\app\\musicplayer"; }
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    33
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    34
find(\&Wanted, $package_path);
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    35
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    36
#Copy a pkg file and replace \armv5\urel with $(platform)\$(target)
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    37
foreach $file (@files) { #Replace "//v800020/Publish" with "http://cdn.symbian,org"
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    38
	copy($file,$file . ".orig") or die ("Cannot copy file \"$file\". $!\n");
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    39
	tie (@lines, 'Tie::File', $file, recsep => "\n") or die ("Cannot tie file \"$file\". $!\n");
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    40
	$n = 0;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    41
	$file_fixed = 0;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    42
	foreach (@lines) {
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    43
		if (lc(@lines[$n]) =~ m/epoc32\\release\\armv5\\urel\\/) {
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    44
			@lines[$n] = lc(@lines[$n]);
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    45
			@lines[$n] =~ s/\\armv5\\urel\\/\\\$(platform)\\\$(target)\\/;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    46
			$file_fixed = 1;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    47
		}
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    48
		if (lc(@lines[$n]) =~ m/epoc32\\release\\armv5\\udeb\\/) {
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    49
			@lines[$n] = lc(@lines[$n]);
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    50
			@lines[$n] =~ s/\\armv5\\udeb\\/\\\$(platform)\\\$(target)\\/;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    51
			$file_fixed = 1;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    52
		}
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    53
		$n++;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    54
	}
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    55
	if ($file_fixed) { print $file . " fixed.\n"; }
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    56
	untie @lines;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    57
}
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    58
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    59
sub Wanted {
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    60
    # only operate on .pkg files
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    61
	/.pkg$/ or return;
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    62
    push (@files, $File::Find::name);
9d4b5a298764 Added script for fixing pkg files so that they can be used by Helium test drop generator
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    63
}