--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/BxCopy.pl Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,93 @@
+# Copyright (c) 2003-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:
+# Script to get Source from Perforce
+#
+#
+
+use strict;
+use Getopt::Long;
+
+use FindBin;
+use lib "$FindBin::Bin";
+use BxCopy;
+
+
+# Process the commandline
+my ($iSource, $iTarget, $iExclude, $iInclude, $iVerbose, $iNoAction) = ProcessCommandLine();
+
+# Get list of files
+my $iCopyFiles = &BxCopy::FilterDir($iSource,$iExclude,$iInclude);
+
+# Copy Function
+&BxCopy::CopyFiles($iSource, $iTarget, $iCopyFiles, $iVerbose, $iNoAction);
+
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+#
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+ my ($iHelp, $iSource, $iTarget, @iExclude, @iInclude, $iVerbose, $iNoAction);
+ GetOptions('h' => \$iHelp, 's=s' => \$iSource, 't=s' => \$iTarget, 'x=s' => \@iExclude, 'i=s' => \@iInclude, 'v' => \$iVerbose, 'n' => \$iNoAction);
+
+ if (($iHelp) || (!defined $iSource) || (!defined $iTarget))
+ {
+ Usage();
+ } elsif (! -d $iSource) {
+ print "$iSource is not a directory\n";
+ Usage();
+ } elsif ( -d $iTarget) {
+ print "$iTarget already exist\n";
+ Usage();
+ } else {
+ # Remove any trailing \ or from dirs
+ $iSource =~ s#[\\\/]$##;
+ $iTarget =~ s#[\\\/]$##;
+ # Make sure all the \ are /
+ $iSource =~ s/\\/\//g;
+ $iTarget =~ s/\\/\//g;
+ return($iSource, $iTarget, \@iExclude, \@iInclude, $iVerbose, $iNoAction);
+ }
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+ print <<USAGE_EOF;
+
+ Usage: BxCopy.pl [options]
+
+ options:
+
+ -h -- help
+ -s source -- source directory
+ -t target -- target directory
+ -x regexp -- exclude a reqular expression from the list of files
+ -i regexp -- include a regular expression in to the list of files
+ -v -- Verbose mode
+ -n -- No Copy
+
+ Note: The inclusion takes precedence over the exclusion.
+ Note: This will not overwrite files as target cannot exist.
+USAGE_EOF
+ exit 1;
+}