tools: add dummy scripts for help2man and makeinfo
[openwrt/staging/yousong.git] / tools / missing-macros / src / bin / makeinfo
diff --git a/tools/missing-macros/src/bin/makeinfo b/tools/missing-macros/src/bin/makeinfo
new file mode 100755 (executable)
index 0000000..e163cba
--- /dev/null
@@ -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;
+}