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 )