CPAN::Packager::Script - CUI for CPAN::Packager


CPAN-Packager documentation Contained in the CPAN-Packager distribution.

Index


Code Index:

NAME

Top

CPAN::Packager::Script - CUI for CPAN::Packager

SYNOPSIS

Top

  use CPAN::Packager::Script;
  my $script = CPAN::Packager::Script->new_with_options;
  $script->run;

DESCRIPTION

Top

CPAN::Packager::Script is a CUI for CPAN::Packager.

AUTHOR

Top

Takatoshi Kitano <kitano.tk@gmail.com>

SEE ALSO

Top

LICENSE

Top

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


CPAN-Packager documentation Contained in the CPAN-Packager distribution.

package CPAN::Packager::Script;
use Mouse;
use CPAN::Packager;
use CPAN::Packager::FileUtil qw(dir file slurp);

with 'MouseX::Getopt';

has 'dry_run' => (
    is      => 'rw',
    isa     => 'Bool',
    defalut => 0,
);

has 'module' => (
    is  => 'rw',
    isa => 'Str',
);

has 'builder' => (
    is       => 'rw',
    isa      => 'Str',
    required => 1,
);

has 'downloader' => (
    is      => 'rw',
    isa     => 'Str',
    default => 'CPAN',
);

has 'conf' => (
    is       => 'rw',
    isa      => 'Str',
    required => 1,
);

has 'always_build' => (
    is      => 'rw',
    isa     => 'Bool',
    default => 0,
);

has 'modulelist' => (
    is  => 'rw',
    isa => 'Str',
);

has 'verbose' => (
    is      => 'rw',
    isa     => 'Bool',
    default => 0,
);

sub run {
    my $self = shift;

    unless ( $self->builder eq "Deb" || $self->builder eq "RPM" ) {
        die 'builder option value must be Deb or RPM';
    }

    my $packager = CPAN::Packager->new(
        builder      => $self->builder,
        downloader   => $self->downloader,
        conf         => $self->conf,
        always_build => $self->always_build,
        dry_run      => $self->dry_run,
        verbose      => $self->verbose,
    );

    if ( $self->modulelist ) {
        my $module_list = file( $self->modulelist );
        my @modules = slurp($module_list, {chomp=>1});
        @modules = grep { $_ !~ /^#/ } @modules;
        my $built_modules;
        foreach my $module (@modules) {
            $built_modules = $packager->make( $module, $built_modules );
        }
    }
    else {
        die 'module is required' unless $self->module;
        $packager->make( $self->module );
    }
}

no Mouse;
__PACKAGE__->meta->make_immutable;
1;

__END__