diff -r c8ecf89eb77f -r d879835cfeed build/tools/compress_zips.pl --- a/build/tools/compress_zips.pl Sat Feb 20 00:39:01 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,171 +0,0 @@ -# -# Copyright (c) 2006 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: -# - -use strict; -use File::Find; # for finding -use File::Basename; # for fileparse -use File::Path; -use File::Copy; -use Getopt::Long; -use Cwd; - -my ($back_up); -my (@zips, @temp_paths); -my (%zips_files, %zips_paths); - -my $temp_dir = "\\compress_temp\\"; -my $version = "1.0"; - -info(); - -if ( !GetOptions( - 'backup' => \$back_up, - 'z=s' => \@zips)) -{ - &error_msg("Invalid arguments!\n"); -} - -if (! scalar (@zips)) { - &error_msg("Invalid arguments!\n"); -} - -if (scalar (@zips) == 1) { - &error_msg("More that one input file is needed!\n"); -} - -foreach (@zips) { - if (! -e $_) { - &error_msg("File not found : $_\n"); - } -} - -foreach (@zips) { - unzip_temp($_); -} - -rezip(); - -rmtree($temp_dir); - -sub unzip_temp { - my $zip_file = shift; - - my($n, $d, $ext) = fileparse($zip_file, '\..*'); - - mkpath ($temp_dir.$n); - push @temp_paths, $n; - $zips_paths{$n}=$d; - - my $extrCmd = "7za.exe x -y ${zip_file} -o${temp_dir}${n}"; - print "$extrCmd"; - system ("$extrCmd"); - - if ($back_up) { - print "rename ${zip_file} to ${d}${n}_orig${ext}\n"; - my $backup_name = ${d}.${n}."_orig".${ext}; - rename (${zip_file}, ${backup_name}); - } - - unlink (${zip_file}); - - - if (-e "${temp_dir}${n}\\checksum.md5") { - unlink ("${temp_dir}${n}\\checksum.md5"); - } - - print "\\epoc32\\tools\\evalid.pl -g ${temp_dir}${n} ${temp_dir}${n}\\checksum.md5"; - system ("\\epoc32\\tools\\evalid.pl -g ${temp_dir}${n} ${temp_dir}${n}\\checksum.md5"); - - open (MD5_FILE,"${temp_dir}${n}\\checksum.md5") or &error_msg("Cannot open ${temp_dir}${n}\\checksum.md5"); - - while () { - chomp; - next if (/^\/\//); # Skip comment lines - next if (/^#/); # Skip comment lines - next if (/^ *$/); # Skip empty lines - $_ =~ s/\//\\/g; #Change / marks to \ - - next if !/(TYPE=)/i; - - my $file_name = $_; - $file_name =~ s/( TYPE=).*//i; - - $_ =~ s/.*MD5=//i; - - $file_name = lc $file_name; - $file_name =~ s/\\/\//g; #Change / marks to \ - - my %temp; - $temp{$_}=1; - if (!exists $zips_files{$file_name}) { - $zips_files{$file_name}={%temp}; - } - else { -# print "$zips_files{$file_name}{$_}\t $_ \n"; - if (exists $zips_files{$file_name}{$_}) { - $zips_files{$file_name}->{$_}=$zips_files{$file_name}->{$_}+1; - } - } - } - - close MD5_FILE; -} - -sub rezip { - my $given_files = scalar (@zips); - my @zip_list; - print "\nrezip $given_files \n"; - - foreach my $key (keys %zips_files) { - foreach my $key2 (keys %{$zips_files{$key}}) { - if ($zips_files{$key}{$key2} != $given_files) { - $key =~ s/\//\\/g; #Change / marks to \ - push @zip_list, $key."\n"; - } - } - } - - my $current_dir = cwd(); - foreach my $zip_name (keys %zips_paths) { - my $name=$zips_paths{$zip_name}.$zip_name.".zip"; - chdir(${temp_dir}.${zip_name}); - open (ZIP,"| zip -r $name -@"); - print ZIP @zip_list; - close ZIP; - chdir($current_dir); - } -} - - -sub info { - print "compress_zips.pl version $version \n"; - print "Remove files that are same in each given zipfile.\n"; - print "Uses evalid to compare files inside zips.\n"; -} - -sub error_msg ($){ - my($ErrorMsg); - ($ErrorMsg)=@_; - my $given_command=$0; - $given_command =~ s/.*\\(\w+\.\w+)$/$1/; - print "Error: $ErrorMsg \n"; - print "Usage: \n$given_command -z \\zips\\delta_western.zip -z \\zips\\delta_china.zip -z \\zips\\delta_japan.zip -backup\n"; - print " -z zipfiles that should compress, two or more are needed\n"; - print " -backup rename original zip files adding '_orig' end of the filename \n"; - print "Example: \n$given_command -z \\zips\\delta_western.zip -z \\zips\\delta_china.zip -z \\zips\\delta_japan.zip -backup\n"; - print "\n"; - die "\n"; -} \ No newline at end of file