File: zip.pl

package info (click to toggle)
libarchive-zip-perl 1.14-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 548 kB
  • ctags: 317
  • sloc: perl: 3,369; makefile: 45
file content (30 lines) | stat: -rw-r--r-- 630 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/perl -w
# Creates a zip file, adding the given directories and files.
# Usage:
#	perl zip.pl zipfile.zip file [...]

use strict;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);

die "usage: $0 zipfile.zip file [...]\n"
	if (scalar(@ARGV) < 2);

my $zipName = shift(@ARGV);
my $zip = Archive::Zip->new();

foreach my $memberName (map { glob } @ARGV)
{
	if (-d $memberName )
	{
		warn "Can't add tree $memberName\n"
			if $zip->addTree( $memberName, $memberName ) != AZ_OK;
	}
	else
	{
		$zip->addFile( $memberName )
			or warn "Can't add file $memberName\n";
	}
}

my $status = $zip->writeToFileNamed($zipName);
exit $status;