CPANPLUS-Dist-Debora
view release on metacpan or search on metacpan
lib/CPANPLUS/Dist/Debora/Package/Tar.pm view on Meta::CPAN
say $self->_format_file($file) or $ok = 0;
}
}
}
else {
$ok = run(command => \@install_cmd, verbose => $options{verbose});
}
return $ok;
}
sub outputname {
my $self = shift;
my $outputname = $self->_read(
'outputname',
sub {
catfile($self->outputdir,
$self->name . q{-}
. $self->version . q{-}
. $self->build_number
. q{.tar.gz});
}
);
return $outputname;
}
sub _docdir {
my $self = shift;
my $docdir = $self->_read(
'_docdir',
sub {
catdir($Config{$self->installdirs . 'prefix'},
'share', 'doc', $self->name);
}
);
return $docdir;
}
sub _clamp_mtime {
my ($self, $tarfile) = @_;
my $last_modification = $self->last_modification;
if ($tarfile->mtime > $last_modification) {
$tarfile->mtime($last_modification);
}
return;
}
sub _add_dir {
my ($self, $tar, $dir) = @_;
my %properties = (
type => DIR,
mode => oct '0755',
uid => 0,
gid => 0,
uname => 'root',
gname => 'root',
mtime => $self->last_modification,
);
my $tarfile = $tar->add_data(catdir(q{.}, $dir), q{}, \%properties);
return $tarfile;
}
sub _add_file {
my ($self, $tar, $path) = @_;
my ($tarfile) = $tar->add_files(catfile(q{.}, $path));
if (defined $tarfile) {
$tarfile->chown('root', 'root');
$self->_clamp_mtime($tarfile);
}
return $tarfile;
}
sub _add_doc {
my ($self, $tar, $path) = @_;
my $docdir = $self->_docdir;
my $file = substr $path, length $self->builddir;
my $new_name = unix_path(catfile(q{.}, $docdir, $file));
my ($tarfile) = $tar->add_files($path);
if (defined $tarfile) {
$tarfile->chown('root', 'root');
$tarfile->rename($new_name);
$self->_clamp_mtime($tarfile);
}
return $tarfile;
}
sub _add_docdir {
my ($self, $tar, $dir) = @_;
opendir my $dh, $dir or croak "Could not traverse '$dir': $OS_ERROR";
ENTRY:
while (defined(my $entry = readdir $dh)) {
next ENTRY if $entry eq q{.} || $entry eq q{..};
my $path = catfile($dir, $entry);
# Skip symbolic links.
next ENTRY if -l $path;
$self->_add_doc($tar, $path);
if (-d $path) {
$self->_add_docdir($tar, $path);
}
}
closedir $dh;
( run in 1.533 second using v1.01-cache-2.11-cpan-5735350b133 )