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