sbsv1/abld/e32util/copyfeaturevariants.pl
author lorewang
Wed, 01 Dec 2010 16:05:36 +0800
changeset 715 e0739b8406dd
parent 599 fa7a3cc6effd
permissions -rw-r--r--
Specify extenal tool with path

# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of "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:
# copy A.X.aaa to B.X.bbb for all X (32 chars) when given A.aaa B.bbb
# 
#


my $source = shift;
my $target = shift;

my $errs = 0;

# copy invariant
use File::Copy;
if (-f $source)
{
	if (copy($source, $target))
	{
		print "copy $source $target\n";
	}
	else
	{
		print "ERROR: failed copy $source $target\n";
		$errs++;
	}
}

# now think about variants

use File::Basename;
my $srcDir = dirname($source);
my $srcRoot = basename($source);
my $srcExt = "";

if ($srcRoot =~ /^(.+)\.([^\.]+)$/)
{
	$srcRoot = $1;
	$srcExt = $2;
}

my $tgtRoot = $target;
my $tgtExt = "";

if ($tgtRoot =~ /^(.+)\.([^\.]+)$/)
{
	$tgtRoot = $1;
	$tgtExt = $2;
}

opendir(DIR, $srcDir) or die("ERROR: cannot read directory $srcDir\n");

# copy all variants
while (my $file = readdir(DIR))
{
	if ($file =~ /^$srcRoot\.(\w{32})\.$srcExt$/i)
	{
		my $from = "$srcDir/$file";
		my $into = "$tgtRoot.$1.$tgtExt";

		if (copy($from, $into))
		{
			print "copy $from $into\n";
		}
		else
		{
			print "ERROR: failed copy $from $into\n";
			$errs++;
		}
	}
}

exit 1 if (!closedir(DIR) || $errs > 0);
exit 0;