diff options
Diffstat (limited to 'tools/missing-macros/src/bin/makeinfo')
-rwxr-xr-x | tools/missing-macros/src/bin/makeinfo | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/tools/missing-macros/src/bin/makeinfo b/tools/missing-macros/src/bin/makeinfo new file mode 100755 index 0000000000..e163cba084 --- /dev/null +++ b/tools/missing-macros/src/bin/makeinfo @@ -0,0 +1,112 @@ +#!/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) 4.13\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; +} |