Cache-Repository
view release on metacpan or search on metacpan
lib/Cache/Repository.pm view on Meta::CPAN
if (-l $fullname)
{
$self->add_symlink(
tag => $opts{tag},
filename => $repositoryname,
target => readlink($fullname),
) or return 0;
}
else
{
my $s = File::stat::stat($fullname);
my $fh = IO::File->new($fullname, 'r') or do {
warn "Can't open $fullname: $!";
return 0;
};
binmode $fh;
my %file_opts = (
filename => $repositoryname,
filehandle => $fh,
mode => $s->mode(),
owner => $s->uid(),
lib/Cache/Repository/Filesys.pm view on Meta::CPAN
}
$fh;
}
sub _load_meta
{
my $self = shift;
my $fh = $self->_lock_meta();
# only load it if it's been changed since the last load.
my $s = stat($self->{metaname});
if ($s and
$s->mtime() >= ($self->{metastamp} || 0) and
$fh)
{
local $/;
my $data = join '', $fh->getlines();
$self->{metastamp} = time();
$fh->close(); # release lock
$self->{meta} = $self->_thaw($data);
lib/Cache/Repository/Filesys.pm view on Meta::CPAN
@files_to_extract = ref $opts{files} ? @{$opts{files}} : ($opts{files});
}
else
{
@files_to_extract = $self->list_files(%opts);
}
foreach my $file (@files_to_extract)
{
my $srcname = File::Spec->catfile($repos_dir, $file);
my $s = stat($srcname);
return 0 unless $s;
my %cb_opts = (
mode => $s->mode(),
owner => $s->uid(),
group => $s->gid(),
filename => $file,
start => 1,
);
( run in 0.630 second using v1.01-cache-2.11-cpan-49f99fa48dc )