CPANPLUS-Dist-Slackware
view release on metacpan or search on metacpan
lib/CPANPLUS/Dist/Slackware/PackageDescription.pm view on Meta::CPAN
}
}
my @prereqs
= map { { name => $_, version => _normalize_version( $prereqs{$_} ) } }
sort { uc $a cmp uc $b } keys %prereqs;
return @prereqs;
}
sub readme_slackware {
my $self = shift;
my $module = $self->module;
my $name = $module->package_name;
my $version = $module->package_version;
$columns = 78;
my $title = "$name for Slackware Linux";
my $line = q{=} x length $title;
my $readme = "$title\n$line\n\n";
my @prereqs = $self->_prereqs;
my $text = 'This package was created by CPANPLUS::Dist::Slackware'
. " from the Perl distribution '$name' version $version.";
$readme .= Text::Wrap::wrap( q{}, q{}, $text ) . "\n";
if (@prereqs) {
$readme
.= "\n"
. "Required modules\n"
. "----------------\n\n"
. "The following Perl packages are required:\n\n";
for my $prereq (@prereqs) {
my $prereq_name = $prereq->{name};
my $prereq_version = $prereq->{version};
$readme .= "* $prereq_name";
if ( $prereq_version ne '0' ) {
$readme .= " >= $prereq_version";
}
$readme .= "\n";
}
}
return $readme;
}
sub destdir {
my $self = shift;
my $module = $self->module;
my $cb = $module->parent;
my $destdir = $self->{destdir};
if ( !$destdir ) {
my $template = 'package-' . $self->normalized_name . '-XXXXXXXXXX';
my $wrkdir = $ENV{TMP} || catdir( tmpdir(), 'CPANPLUS' );
if ( !-d $wrkdir ) {
$cb->_mkdir( dir => $wrkdir )
or die "Could not create directory '$wrkdir': $OS_ERROR\n";
}
$destdir = File::Temp::tempdir( $template, DIR => $wrkdir );
chmod oct '0755', $destdir
or die "Could not chmod '$destdir': $OS_ERROR\n";
$self->{destdir} = $destdir;
}
return $destdir;
}
1;
__END__
=head1 NAME
CPANPLUS::Dist::Slackware::PackageDescription - Collect information on a new Slackware compatible package
=head1 VERSION
This document describes CPANPLUS::Dist::Slackware::PackageDescription version 1.030.
=head1 SYNOPSIS
use CPANPLUS::Dist::Slackware::PackageDescription;
$pkgdesc = CPANPLUS::Dist::Slackware::PackageDescription->new(
module => $modobj,
tag => '_MYTAG',
type => 'txz'
);
$filename = $pkgdesc->filename();
$summary = $pkgdesc->summary();
$desc = $pkgdesc->slack_desc();
@docfiles = $pkgdesc->docfiles();
=head1 DESCRIPTION
This module gets information on a yet to be created Slackware compatible
package. The information is obtained from a CPANPLUS::Module object, the
file system and the environment. Among other things, the module translates a
Perl distribution's name and version into a package name. It tries to find a
short summary that describes the distribution. It can build a F<slack_desc>
description for you. It finds standard documentation files like F<README> and
F<Changes>.
=head1 SUBROUTINES/METHODS
=over 4
=item B<< CPANPLUS::Dist::Slackware::PackageDescription->new(%attrs) >>
Returns a newly constructed object.
$pkgdesc = CPANPLUS::Dist::Slackware::PackageDescription->new(
module => $modobj,
%attrs
);
The CPANPLUS::Module object is mandatory. All other attributes are
optional.
=item B<< $pkgdesc->module >>
Returns the CPANPLUS::Module object that was passed to the constructor.
( run in 0.794 second using v1.01-cache-2.11-cpan-39bf76dae61 )