|  | #!/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"; |