47 lines
		
	
	
		
			805 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			47 lines
		
	
	
		
			805 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
#!/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";
 |