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 )