113 lines
1.8 KiB
Perl
Executable File
113 lines
1.8 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use Getopt::Long;
|
|
|
|
my $output;
|
|
my $version;
|
|
my $docbook;
|
|
my $html;
|
|
my $xml;
|
|
my $plaintext;
|
|
my $no_split;
|
|
my $no_headers;
|
|
|
|
Getopt::Long::Configure('pass_through');
|
|
Getopt::Long::GetOptions(
|
|
'output=s' => \$output,
|
|
'version' => \$version,
|
|
'no-split' => \$no_split,
|
|
'no-headers' => \$no_headers,
|
|
'docbook' => \$docbook,
|
|
'html' => \$html,
|
|
'xml' => \$xml,
|
|
'plaintext' => \$plaintext
|
|
);
|
|
|
|
if ($version)
|
|
{
|
|
print "makeinfo (OpenWrt stub) 9.99\n";
|
|
exit 0;
|
|
}
|
|
|
|
|
|
sub output_filename
|
|
{
|
|
my $path = shift || return;
|
|
my $name = $path;
|
|
my $setfile;
|
|
|
|
if (open F, "< $path")
|
|
{
|
|
while (defined(my $line = readline F))
|
|
{
|
|
if ($line =~ /\@setfilename\s+(\S+)/)
|
|
{
|
|
$setfile = $1;
|
|
$setfile =~ s!^.+/!!;
|
|
last;
|
|
}
|
|
}
|
|
|
|
close F;
|
|
}
|
|
|
|
$name =~ s!^.+/!!;
|
|
$name =~ s!\.[^.]+$!!;
|
|
|
|
if ($html)
|
|
{
|
|
$setfile =~ s!\.[^.]+$!! if $setfile;
|
|
|
|
if ($no_split)
|
|
{
|
|
return $setfile ? "$setfile.html" : "$name.html" unless $output;
|
|
return $output;
|
|
}
|
|
|
|
return $setfile ? "$setfile/index.html" : "$name/index.html" unless $output;
|
|
return "$output/index.html";
|
|
}
|
|
elsif ($xml || $docbook)
|
|
{
|
|
$setfile =~ s!\.[^.]+$!! if $setfile;
|
|
|
|
return $setfile ? "$setfile.xml" : "$name.info" unless $output;
|
|
return $output;
|
|
}
|
|
elsif ($plaintext)
|
|
{
|
|
return ($output || "-");
|
|
}
|
|
|
|
return ($output || $setfile || "$name.info");
|
|
}
|
|
|
|
foreach my $arg (@ARGV)
|
|
{
|
|
next unless -f $arg;
|
|
|
|
my $out = output_filename($arg);
|
|
if ($out =~ m!^(.+/)[^/]+$!)
|
|
{
|
|
system("mkdir", "-p", $1);
|
|
}
|
|
|
|
my $fd = \*STDOUT;
|
|
if ($out ne "-" && !$no_headers)
|
|
{
|
|
open $fd, "> $out" || die "Can't open $out: $!\n";
|
|
}
|
|
|
|
if ($html || $xml || $docbook)
|
|
{
|
|
print $fd "<!-- Dummy output for $arg -->\n";
|
|
}
|
|
else
|
|
{
|
|
print $fd "Dummy output for $arg\n";
|
|
}
|
|
|
|
close $fd;
|
|
}
|