App-grindperl
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/App/grindperl.pm view on Meta::CPAN
}
}
$self->do_cmd( "./Configure", $self->configure_args )
or croak("Configure failed!");
# save files back into cache if updated
dir( $self->cache_dir )->mkpath;
for my $f ( qw/config.sh Policy.sh/ ) {
copy( $f, $self->cache_file($f) )
if (! -f $self->cache_file($f)) || (-M $f > -M $self->cache_file($f));
}
return 1;
}
sub run {
my ($self) = @_;
if ( $self->opt->get_edit ) {
my $cf_file = $self->config_file;
if ( $ENV{EDITOR} ) {
system( $ENV{EDITOR}, $cf_file )
and die "Error editing config file: $!\n";
}
else {
say "No EDITOR set. Edit $cf_file manually.";
}
exit 0;
}
die "This doesn't look like a perl source directory.\n"
unless -f "perl.c";
my $prefix = $self->prefix;
die "Can't install to $prefix\: parent directory is not writeable\n"
unless -w dir($prefix)->parent;
if ( $self->is_git ) {
$self->do_cmd("git clean -dxf")
}
else {
$self->do_cmd("make distclean") if -f 'Makefile';
}
$self->configure;
exit 0 if $self->opt->get_config; # config only
my $test_jobs = $self->opt->get_testjobs;
my $jobs = $self->opt->get_jobs;
if ( $test_jobs ) {
$ENV{TEST_JOBS} = $test_jobs if $test_jobs > 1;
if ( $self->opt->get_porting ) {
$self->vlog("Running 'make test_porting' with $test_jobs jobs");
$self->do_cmd("make -j $jobs test_porting")
or croak ("make test_porting failed");
}
elsif ( grep { /test_harness/ } do { local(@ARGV,$/) = "Makefile"; <>} ) {
$self->vlog("Running 'make test_harness' with $test_jobs jobs");
$self->do_cmd("make -j $jobs test_harness")
or croak ("make test_harness failed");
}
else {
$self->vlog("Running 'make test' with $test_jobs jobs");
$self->do_cmd("make -j $jobs test")
or croak ("make test failed");
}
}
else {
$self->vlog("Running 'make test_prep' with $test_jobs jobs");
$self->do_cmd("make -j $jobs test_prep")
or croak("make test_prep failed!");
}
if ( $self->opt->get_install ) {
$self->vlog("Running 'make install'");
$self->do_cmd("make install")
or croak("make install failed!");
}
return 0; # usually passed to exit
}
1;
# ABSTRACT: Guts of the grindperl tool
# vim: ts=2 sts=2 sw=2 et:
__END__
=pod
=encoding UTF-8
=head1 NAME
App::grindperl - Guts of the grindperl tool
=head1 VERSION
version 0.004
=head1 SYNOPSIS
use App::grindperl;
my $app = App::grindperl->new;
exit $app->run;
=head1 DESCRIPTION
This module contains the guts of the L<grindperl> program.
=for Pod::Coverage new
opt
is_git
logfile
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.318 second using v1.00-cache-2.02-grep-82fe00e-cpan-c30982ac1bc3 )