Archive-Tar-Builder
view release on metacpan or search on metacpan
lib/Archive/Tar/Builder/UserCache.pm view on Meta::CPAN
return bless {
'users' => {},
'groups' => {}
}, $class;
}
sub lookup {
my ( $self, $uid, $gid ) = @_;
unless ( exists $self->{'users'}->{$uid} ) {
if ( my @pwent = getpwuid($uid) ) {
$self->{'users'}->{$uid} = $pwent[0];
}
else {
$self->{'users'}->{$uid} = undef;
}
}
unless ( exists $self->{'groups'}->{$gid} ) {
if ( my @grent = getgrgid($gid) ) {
$self->{'groups'}->{$gid} = $grent[0];
src/Builder.xs view on Meta::CPAN
typedef b_builder * Archive__Tar__Builder;
static int user_lookup(SV *cache, uid_t uid, gid_t gid, b_string **user, b_string **group) {
dSP;
I32 retc;
ENTER;
SAVETMPS;
/*
* Prepare the stack for $cache->getpwuid()
*/
PUSHMARK(SP);
XPUSHs(cache);
XPUSHs(sv_2mortal(newSViv(uid)));
XPUSHs(sv_2mortal(newSViv(gid)));
PUTBACK;
retc = call_method("lookup", G_ARRAY);
SPAGAIN;
t/lib-Archive-Tar-Builder-UserCache.t view on Meta::CPAN
use strict;
use warnings;
use Archive::Tar::Builder::UserCache ();
use Test::More ( 'tests' => 4 );
sub find_unused_ids {
my ( $uid, $gid );
for ( $uid = 99999; getpwuid($uid); $uid-- ) { }
for ( $gid = 99999; getgrgid($gid); $gid-- ) { }
return ( $uid, $gid );
}
#
# Test Archive::Tar::Builder internal methods
#
{
my $cache = Archive::Tar::Builder::UserCache->new;
t/lib-Archive-Tar-Builder.t view on Meta::CPAN
close $err;
waitpid( $pid, 0 ) or die("Unable to waitpid() on $pid: $!");
return $is_bsd_tar;
}
sub find_unused_ids {
my ( $uid, $gid );
for ( $uid = 99999; getpwuid($uid); $uid-- ) { }
for ( $gid = 99999; getgrgid($gid); $gid-- ) { }
return ( $uid, $gid );
}
sub build_tree {
my $tmpdir = File::Temp::tempdir( 'CLEANUP' => 1 );
my $file = "$tmpdir/foo/exclude.txt";
File::Path::mkpath("$tmpdir/foo/bar/baz/foo/cats");
( run in 0.488 second using v1.01-cache-2.11-cpan-8d75d55dd25 )