Blame examples/extract.pl

Packit 0bf95d
#!/bin/perl -w
Packit 0bf95d
# Extracts the named files into 'extractTest' subdir
Packit 0bf95d
# usage:
Packit 0bf95d
#	perl extract.pl [-j] zipfile.zip filename [...]
Packit 0bf95d
# if -j option given, discards paths.
Packit 0bf95d
#
Packit 0bf95d
# $Revision: 1.5 $
Packit 0bf95d
#
Packit 0bf95d
use strict;
Packit 0bf95d
Packit 0bf95d
my $dirName = 'extractTest';
Packit 0bf95d
Packit 0bf95d
use vars qw( $opt_j );
Packit 0bf95d
use Archive::Zip qw(:ERROR_CODES);
Packit 0bf95d
use Getopt::Std;
Packit 0bf95d
Packit 0bf95d
$opt_j = 0;
Packit 0bf95d
getopts('j');
Packit 0bf95d
Packit 0bf95d
if (@ARGV < 2) {
Packit 0bf95d
    die <
Packit 0bf95d
	usage: perl extract.pl [-j] zipfile.zip filename [...]
Packit 0bf95d
	if -j option given, discards paths.
Packit 0bf95d
EOF
Packit 0bf95d
}
Packit 0bf95d
Packit 0bf95d
my $zip     = Archive::Zip->new();
Packit 0bf95d
my $zipName = shift(@ARGV);
Packit 0bf95d
my $status  = $zip->read($zipName);
Packit 0bf95d
die "Read of $zipName failed\n" if $status != AZ_OK;
Packit 0bf95d
Packit 0bf95d
foreach my $memberName (@ARGV) {
Packit 0bf95d
    print "Extracting $memberName\n";
Packit 0bf95d
    $status =
Packit 0bf95d
        $opt_j
Packit 0bf95d
      ? $zip->extractMemberWithoutPaths($memberName)
Packit 0bf95d
      : $zip->extractMember($memberName);
Packit 0bf95d
    die "Extracting $memberName from $zipName failed\n" if $status != AZ_OK;
Packit 0bf95d
}