1
0
forked from 0ad/0ad

Updated archive builder a little bit more

This was SVN commit r2002.
This commit is contained in:
Ykkrosh 2005-03-17 19:17:41 +00:00
parent 1e52b32f6b
commit c2d8daa135

View File

@ -357,16 +357,20 @@ sub create_archive {
for my $file (@$files) {
my ($member, $filename, $size);
if ($file->[1]->archive) {
$zip->addMember($file->[1]->location) or die "Error adding zipped file $file->[0] to zip";
$member = $file->[1]->location;
$filename = $member->fileName();
$size = sub { $member->uncompressedSize() };
} else {
$member = Archive::Zip::Member->newFromFile($file->[1]->location) or die "Error adding file $file->[0] to zip";
$filename = $file->[1]->location;
$member->fileName($file->[0]); # set the internal non-absolute filename
$size = sub { (stat $filename)[7] };
}
my $member = Archive::Zip::Member->newFromFile($file->[1]->location) or die "Error adding file $file->[0] to zip";
$member->fileName($file->[0]);
if (should_compress($file->[1]->location)) {
if (should_compress($filename, $size)) {
$member->desiredCompressionMethod(Archive::Zip::COMPRESSION_DEFLATED);
} else {
$member->desiredCompressionMethod(Archive::Zip::COMPRESSION_STORED);
@ -374,7 +378,6 @@ sub create_archive {
$zip->addMember($member);
}
}
my $err = $zip->overwriteAs($filename); $err == Archive::Zip::AZ_OK or die "Error saving zip file $filename ($err)";
}
@ -395,8 +398,8 @@ sub get_opt {
}
sub should_compress {
my ($filename) = @_;
return 0 if $filename =~ /\.(ogg|png)$/i; # don't compress things that are already compressed
return 0 if (stat $filename)[7] < 8192; # don't compress small files
my ($filename, $size) = @_;
return 0 if $filename =~ /\.(ogg|png)$/i; # don't compress things that are already compressed quite well
# return 0 if $size->() < 8192; # if we don't want to compress small files
return 1;
}