Archive-Tar-Wrapper
view release on metacpan or search on metacpan
lib/Archive/Tar/Wrapper.pm view on Meta::CPAN
chown $uid, -1, $target
or LOGDIE "Can't chown $target uid to $uid ($!)";
}
if ( defined $gid ) {
chown -1, $gid, $target
or LOGDIE "Can't chown $target gid to $gid ($!)";
}
if ( defined $perm ) {
chmod $perm, $target
or LOGDIE "Can't chmod $target to $perm ($!)";
}
if ( not defined $uid
and not defined $gid
and not defined $perm
and not ref($path_or_stringref) )
{
perm_cp( $path_or_stringref, $target )
or LOGDIE "Can't perm_cp $path_or_stringref to $target ($!)";
}
lib/Archive/Tar/Wrapper.pm view on Meta::CPAN
sub perm_get {
my ($filename) = @_;
my @stats = ( stat $filename )[ 2, 4, 5 ]
or LOGDIE "Cannot stat $filename ($!)";
return \@stats;
}
sub perm_set {
my ( $filename, $perms ) = @_;
chown( $perms->[1], $perms->[2], $filename );
chmod( $perms->[0] & oct(777), $filename )
or LOGDIE "Cannot chmod $filename ($!)";
return 1;
}
sub remove {
my ( $self, $rel_path ) = @_;
my $target = File::Spec->catfile( $self->{tardir}, $rel_path );
rmtree($target) or LOGDIE "Can't rmtree $target: $!";
return 1;
}
t/006DirPerms.t view on Meta::CPAN
my $tempdir = tempdir( CLEANUP => 1 );
my ( $fh, $tarfile ) = tempfile( UNLINK => 1 );
# to get predictable results regardless of local umask settings
umask 0002;
my $foodir = "$tempdir/foo";
my $foofile = "$foodir/foofile";
mkdir "$foodir";
chmod 0710, $foodir;
open(my $fh2, '>', $foofile) or die "Cannot open $foofile ($!)";
print $fh2 "blech\n";
close($fh2);
ok( $arch->add( "foo/foofile", $foofile ), "adding file" );
# Make a tarball
ok( $arch->write($tarfile), "Tarring up" );
( run in 0.232 second using v1.01-cache-2.11-cpan-496ff517765 )