| #!/usr/bin/perl -w | |
| my @menu = (); | |
| my $output = $ARGV[0]; | |
| open 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; | |
| printf '\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 | |
| ', $menu[0]; | |
| for (@menu) { | |
| print "* ${_}::\n"; | |
| } | |
| print "\@end menu\n"; | |
| open TMP, '<', "$output.tmp"; | |
| while (<TMP>) { | |
| print; | |
| } | |
| close TMP; | |
| print "\@bye\n"; | |
| unlink "$output.tmp"; |