Devel-ModInfo
view release on metacpan or search on metacpan
modinfo2html.PL view on Meta::CPAN
use Config;
use File::Basename qw(basename dirname);
chdir(dirname($0));
($file = basename($0)) =~ s/\.PL$//;
$file =~ s/\.pl$//
if ($Config{'osname'} eq 'VMS' or
$Config{'osname'} eq 'OS2'); # "case-forgiving"
open OUT,">$file" or die "Can't create $file: $!";
chmod(0755, $file);
print "Extracting $file (with variable substitutions)\n";
print OUT <<"!GROK!THIS!";
#!$^X -w
!GROK!THIS!
foreach my $dir (@INC) {
print OUT qq{use lib '$dir';\n};
}
print OUT <<'!NO!SUBS!';
use Template;
use Devel::ModInfo;
use Getopt::Std;
use Pod::Usage;
use IO::File;
use File::Spec::Functions 'canonpath';
use File::Find;
use File::Path;
use File::Basename 'dirname';
use FindBin;
my $curr_inc_dir;
my @file_list;
my %class2file;
my @dirs_to_make;
my %opts;
getopts('d:fhi:m:rt:x:', \%opts);
if ($opts{h}) {pod2usage(-verbose => 2)}
if (!$opts{m} && !$opts{r}) {pod2usage(-verbose => 2, -message => "Must provide a module name using -m package or specify recurse using -r")}
my $base_dir = canonpath($opts{d});
$base_dir ||= "./";
use constant DOC_TPL => 'modinfo2html.tt';
use constant IDX_TPL => 'modinfo2html_idx.tt';
if ($opts{r}) {
foreach my $inc_dir ('.') {
$curr_inc_dir = $inc_dir;
find(\&proc_file, $inc_dir);
}
foreach my $dir_path (@dirs_to_make) {
mkpath($dir_path, 1);
}
foreach my $file_path (@file_list) {
process_to_file($file_path);
}
if ($opts{i}) {
my $output = new IO::File(">$base_dir/$opts{i}")
or warn "Couldn't open $base_dir/$opts{i} for output: $!";
if ($output->error) {warn $!}
else {
my $title = $opts{t} || "Interface Documentation";
@classes = sort(keys %class2file);
generate_index(
( run in 0.537 second using v1.01-cache-2.11-cpan-39bf76dae61 )