App-LintPrereqs
view release on metacpan or search on metacpan
lib/App/LintPrereqs.pm view on Meta::CPAN
278279280281282283284285286287288289290291292293294295296297my
%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
634635636637638639640641642643644645646647648649650651652653654# 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)"
;
$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
323334353637383940414243444546474849505152for
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/
if
(
@_warnings
)
{
warn
@_warnings
;
t/00-compile.t view on Meta::CPAN
656667686970717273747576777879808182838485close
$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/
# 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 )