| #!/usr/bin/perl -w |
| |
| use strict; |
| use warnings; |
| |
| my @menu = (); |
| my $output = $ARGV[0]; |
| |
| open my $tmp, '>', "$output.tmp"; |
| |
| while (<STDIN>) { |
| next if (/^\\input texinfo/../\@node Top/); |
| next if (/^\@bye/ || /^\.ft/); |
| if (s/^\@top (.*)/\@node $1,,,Top/) { |
| push @menu, $1; |
| } |
| s/\(\@pxref\{\[(URLS|REMOTES)\]}\)//; |
| s/\@anchor\{[^{}]*\}//g; |
| print $tmp $_; |
| } |
| close $tmp; |
| |
| print '\input texinfo |
| @setfilename gitman.info |
| @documentencoding UTF-8 |
| @dircategory Development |
| @direntry |
| * Git Man Pages: (gitman). Manual pages for Git revision control system |
| @end direntry |
| @node Top,,, (dir) |
| @top Git Manual Pages |
| @documentlanguage en |
| @menu |
| '; |
| |
| for (@menu) { |
| print "* ${_}::\n"; |
| } |
| print "\@end menu\n"; |
| open $tmp, '<', "$output.tmp"; |
| while (<$tmp>) { |
| print; |
| } |
| close $tmp; |
| print "\@bye\n"; |
| unlink "$output.tmp"; |