App-CPANtoRPM
view release on metacpan or search on metacpan
comes from the Makefile.PL (or Build.PL script) such as the default
install location.
Since the data is in a script, cpan2rpm tries to be intelligent
about extracting the information. It loads in the Makefile.PL
script, modifies it (by turning 'exit' into 'return') and evals it.
The theory is that by eval'ing it, you end up with the appropriate
data structure that you can examine.
The modifications that it makes are completely unjustified though.
It makes drastic assumptions about what the Makefile.PL file looks
like, and I can think of any number of cases where turning 'exit'
into 'return' won't produce the result you want.
As such, cpan2rpm's handling of the Makefile.PL file needed to be
replaced entirely (and since that makes up a significant portion of
the script, that justified a complete rewrite).
In addition, if the script contained in Makefile.PL is interactive,
cpan2rpm hangs silently while trying to eval it, and there is no
easy way to determine what is causing it to hang.
bin/cpantorpm.pod view on Meta::CPAN
from the Makefile.PL (or Build.PL script) such as the default install
location.
Since the data is in a script, cpan2rpm tries to be intelligent about
extracting the information. It loads in the Makefile.PL script,
modifies it (by turning 'exit' into 'return') and evals it. The
theory is that by eval'ing it, you end up with the appropriate data
structure that you can examine.
The modifications that it makes are completely unjustified though. It
makes drastic assumptions about what the Makefile.PL file looks like,
and I can think of any number of cases where turning 'exit' into
'return' won't produce the result you want.
As such, cpan2rpm's handling of the Makefile.PL file needed to be
replaced entirely (and since that makes up a significant portion of
the script, that justified a complete rewrite).
In addition, if the script contained in Makefile.PL is interactive,
cpan2rpm hangs silently while trying to eval it, and there is no
easy way to determine what is causing it to hang.
lib/App/CPANtoRPM.pm view on Meta::CPAN
foreach my $file (@OUTPUT) {
$file =~ s,^$dir/,,;
next if (! $file);
$files{lc($file)}{$file} = 1;
}
return %files;
}
# This looks at the filelist determines which are pod files, which are
# .pm files, which are test files, etc.
#
sub _categorize_files {
my($self,$op,$dir,%files) = @_;
$self->_log_message('INFO',"Categorizing $op package files");
# First pass based on some simple tests.
my $in = new IO::File;
( run in 0.295 second using v1.01-cache-2.11-cpan-64827b87656 )