--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/tools/detectArchiveCollisions.pl Thu Oct 14 16:29:33 2010 +0100
@@ -0,0 +1,56 @@
+#!perl -w
+# Copyright (c) 2010 Symbian Foundation Ltd
+# 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:
+# Symbian Foundation Ltd - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Identify collisions between file archives
+#
+# Usage:
+# detectArchiveCollisions.pl this.zip that.zip several_*.zip and\also_*.7z
+
+use strict;
+
+# Expand shell wildcards
+@ARGV = map { glob $_ } @ARGV;
+
+my $data;
+
+foreach my $archive (@ARGV)
+{
+ print "Reading $archive...\n";
+ my $file = undef;
+ foreach my $line (`7z l -slt $archive`)
+ {
+ if ($line =~ m{^Path = (.*)})
+ {
+ $file = $1;
+ next;
+ }
+
+ if ($line =~ m{^Folder = -})
+ {
+ # Record this (non-directory) item
+ push @{$data->{$file}}, $archive;
+ next;
+ }
+ }
+}
+
+foreach my $file (sort keys %$data)
+{
+ next unless scalar @{$data->{$file}} > 1;
+ print "ERROR: $file\n";
+ foreach (@{$data->{$file}})
+ {
+ print "\t$_\n";
+ }
+}
+