cat-texi.perl 805 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use warnings;
  4. my @menu = ();
  5. my $output = $ARGV[0];
  6. open my $tmp, '>', "$output.tmp";
  7. while (<STDIN>) {
  8. next if (/^\\input texinfo/../\@node Top/);
  9. next if (/^\@bye/ || /^\.ft/);
  10. if (s/^\@top (.*)/\@node $1,,,Top/) {
  11. push @menu, $1;
  12. }
  13. s/\(\@pxref\{\[(URLS|REMOTES)\]}\)//;
  14. s/\@anchor\{[^{}]*\}//g;
  15. print $tmp $_;
  16. }
  17. close $tmp;
  18. print '\input texinfo
  19. @setfilename gitman.info
  20. @documentencoding UTF-8
  21. @dircategory Development
  22. @direntry
  23. * Git Man Pages: (gitman). Manual pages for Git revision control system
  24. @end direntry
  25. @node Top,,, (dir)
  26. @top Git Manual Pages
  27. @documentlanguage en
  28. @menu
  29. ';
  30. for (@menu) {
  31. print "* ${_}::\n";
  32. }
  33. print "\@end menu\n";
  34. open $tmp, '<', "$output.tmp";
  35. while (<$tmp>) {
  36. print;
  37. }
  38. close $tmp;
  39. print "\@bye\n";
  40. unlink "$output.tmp";