#!/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 "\n"; } else { print $fd "Dummy output for $arg\n"; } close $fd; }