App-CPANtoRPM
view release on metacpan or search on metacpan
lib/App/CPANtoRPM.pm view on Meta::CPAN
# *.pod
#
# PM files:
# *.pm
#
# XS files:
# *.c
# *.xs
#
# Scripts:
# *.pl
# Anything that starts with '#!'
if ($f =~ m,^t/.*\.(t|pl|pm)$,) {
$package{'files'}{'t'}{$f} = '';
} elsif ($f =~ m,^t/,) {
next;
} elsif ($f =~ m,^blib/, ||
$f =~ /pm_to_blib/) {
next;
} elsif ($f =~ m,^inc/.*\.pm$, ||
lc($f) eq 'makefile.pl' ||
lc($f) eq 'build.pl') {
$package{'files'}{'build'}{$f} = '';
} elsif ($f =~ m,^inc/,) {
next;
} elsif ($f =~ m,\.pod$,) {
$package{'files'}{'pod'}{$f} = '';
} elsif ($f =~ m,\.pm$,) {
$package{'files'}{'pm'}{$f} = '';
} elsif ($f =~ m,\.(c|xs)$,) {
$package{'files'}{'xs'}{$f} = '';
} elsif ($f =~ m,\.pl$,) {
$package{'files'}{'scripts'}{$f} = '';
} else {
$in->open("$dir/$f");
my $line = <$in>;
if ($line && $line =~ /^\#\!/) {
$package{'files'}{'scripts'}{$f} = '';
}
}
}
}
}
# If we are doing an arch install, then turn off the noarch lib_inst
if ($package{'arch_inst'}) {
$package{'lib_inst'}=0;
}
#
# We need to decide (if possible) which is the 'main' pod file.
#
# This only has to be done once (at the post_build step).
#
return if ($op ne 'post_build');
# Scripts and .pm files may also be pod.
$package{'files'}{'pm'} = {} if (! exists $package{'files'}{'pm'});
$package{'files'}{'scripts'} = {} if (! exists $package{'files'}{'scripts'});
$package{'files'}{'pod'} = {};
foreach my $f (keys %{ $package{'files'}{'pm'} },
keys %{ $package{'files'}{'scripts'} }) {
$in->open("$dir/$f");
my @in = <$in>;
if (grep /^(=pod|=head1)/,@in) {
$package{'files'}{'pod'}{$f} = 1;
}
}
$self->_log_message('INFO',"Determining the main POD file");
my($mainpod,$name,$summary,$description);
POD:
while (1) {
my @pod = keys %{ $package{'files'}{'pod'} };
#
# If it was specified using the --mainpod option.
#
if ($$self{'mainpod'}) {
if (! -f "$dir/$$self{mainpod}") {
$self->_log_message
('WARN',
"No data obtained from POD file; $$self{mainpod}",
"POD file specified with --mainpod does not exist.",
"Automatic detection of main POD file will be attempted.");
} else {
if (! exists $package{'files'}{'pod'}{$$self{'mainpod'}}) {
$self->_log_message
('WARN',
"No data obtained from POD file; $$self{mainpod}",
"File specified with --mainpod does not appear to be a POD file.",
"It will be tried in spite of this.");
}
($name,$summary,$description) = $self->_get_meta_pod($$self{'mainpod'});
if (! $name) {
$self->_log_message
('WARN',
"No data obtained from POD file; $$self{mainpod}",
"Unable to read POD data from file specified with --mainpod",
"Automatic detection of main POD file will be attempted.");
} else {
$mainpod = $$self{'mainpod'};
( run in 1.746 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )