App-LintPrereqs

 view release on metacpan or  search on metacpan

lib/App/LintPrereqs.pm  view on Meta::CPAN

278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
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

634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
# 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

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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

65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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 0.401 second using v1.01-cache-2.11-cpan-8e9030e308b )