46 lines
805 B
46 lines
805 B
#!/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";
|
|
|