App-LintPrereqs
view release on metacpan or search on metacpan
lib/App/LintPrereqs.pm view on Meta::CPAN
my %args = @_;
(-f "dist.ini")
or return [412, "No dist.ini found. ".
"Are you in the right dir (dist top-level)? ".
"Is your dist managed by Dist::Zilla?"];
my $ct = do {
open my($fh), "<", "dist.ini" or die "Can't open dist.ini: $!";
local $/;
binmode $fh, ":encoding(utf8)";
scalar <$fh>;
};
return [200, "Not run (no-lint-prereqs)"] if $ct =~ /^;!no[_-]lint[_-]prereqs$/m;
my @errs;
my $ciod = Config::IOD->new(
ignore_unknown_directive => 1,
);
lib/App/LintPrereqs.pm view on Meta::CPAN
# there is an unfixable error
if (grep {!$_->{remedy_cmds}} @errs) {
for my $e (@errs) {
$e->{remedy} = " (CAN'T FIX AUTOMATICALLY) $e->{remedy}" unless $e->{remedy_cmds};
}
$resmeta->{'cmdline.exit_code'} = 112;
} else {
# create dist.ini~ first
if (-f "dist.ini~") { unlink "dist.ini~" or return [500, "Can't unlink dist.ini~: $!"] }
sysopen my($fh), "dist.ini~", O_WRONLY|O_CREAT|O_EXCL or return [500, "Can't create dist.ini~: $!"];
binmode $fh, ":encoding(utf8)"; print $fh $ct; close $fh or return [500, "Can't write to dist.ini~: $!"];
# run the commands
FIX:
{
# add sort-prereqs at the end
push @{ $errs[-1]{remedy_cmds} }, ["pdrutil", "sort-prereqs"];
ERR:
for my $e (@errs) {
for my $cmd (@{ $e->{remedy_cmds} }) {
t/00-compile.t view on Meta::CPAN
for my $lib (@module_files)
{
# see L<perlfaq8/How can I capture STDERR from an external command?>
my $stderr = IO::Handle->new;
diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
$^X, @switches, '-e', "require q[$lib]"))
if $ENV{PERL_COMPILE_TEST_DEBUG};
my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]");
binmode $stderr, ':crlf' if $^O eq 'MSWin32';
my @_warnings = <$stderr>;
waitpid($pid, 0);
is($?, 0, "$lib loaded ok");
shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
and not eval { +require blib; blib->VERSION('1.01') };
if (@_warnings)
{
warn @_warnings;
t/00-compile.t view on Meta::CPAN
close $fh and skip("$file uses -T; not testable with PERL5LIB", 1)
if grep { $_ eq '-T' } @switches and $ENV{PERL5LIB};
my $stderr = IO::Handle->new;
diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
$^X, @switches, '-c', $file))
if $ENV{PERL_COMPILE_TEST_DEBUG};
my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-c', $file);
binmode $stderr, ':crlf' if $^O eq 'MSWin32';
my @_warnings = <$stderr>;
waitpid($pid, 0);
is($?, 0, "$file compiled ok");
shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
and not eval { +require blib; blib->VERSION('1.01') };
# in older perls, -c output is simply the file portion of the path being tested
if (@_warnings = grep { !/\bsyntax OK$/ }
grep { chomp; $_ ne (File::Spec->splitpath($file))[2] } @_warnings)
( run in 1.089 second using v1.01-cache-2.11-cpan-4e96b696675 )