The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use utf8;

package Ukigumo::Client::Executor::Perl;
use Config;
use Mouse;
use Ukigumo::Constants;

sub run {
    my ($self, $c) = @_;

    if (-f 'Makefile.PL') {
        $c->tee("perl Makefile.PL")==0 or return STATUS_FAIL;
        $c->tee("$Config{make} test")==0 or return STATUS_FAIL;
        return STATUS_SUCCESS;
    } elsif (-f 'Build.PL') {
        $c->tee("perl Build.PL")==0 or return STATUS_FAIL;
        $c->tee($^O eq 'MSWin32' ? "Build test" : "./Build test")==0 or return STATUS_FAIL;
        return STATUS_SUCCESS;
    } else {
        $c->logger->warnf("There is no Makefile.PL or Build.PL");
        return STATUS_NA;
    }
}

1;

__END__

=head1 NAME

Ukigumo::Client::Executor::Perl - Test executor for project written by perl.

=head1 DESCRIPTION

This executor runs 'perl Makefile.PL && make test' or 'perl Build.PL && ./Build test'.