51 lines
		
	
	
		
			861 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			51 lines
		
	
	
		
			861 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
| #!/usr/bin/perl
 | |
| use strict;
 | |
| use warnings;
 | |
| 
 | |
| print <<"EOT";
 | |
| /* Automatically generated by $0 */
 | |
| 
 | |
| struct cmdname_help {
 | |
| 	char name[16];
 | |
| 	char help[80];
 | |
| 	unsigned char group;
 | |
| };
 | |
| 
 | |
| static char *common_cmd_groups[] = {
 | |
| EOT
 | |
| 
 | |
| my $n = 0;
 | |
| my %grp;
 | |
| while (<>) {
 | |
| 	last if /^### command list/;
 | |
| 	next if (1../^### common groups/) || /^#/ || /^\s*$/;
 | |
| 	chop;
 | |
| 	my ($k, $v) = split ' ', $_, 2;
 | |
| 	$grp{$k} = $n++;
 | |
| 	print "\tN_(\"$v\"),\n";
 | |
| }
 | |
| 
 | |
| print "};\n\nstatic struct cmdname_help common_cmds[] = {\n";
 | |
| 
 | |
| while (<>) {
 | |
| 	next if /^#/ || /^\s*$/;
 | |
| 	my @tags = split;
 | |
| 	my $cmd = shift @tags;
 | |
| 	for my $t (@tags) {
 | |
| 		if (exists $grp{$t}) {
 | |
| 			my $s;
 | |
| 			open my $f, '<', "Documentation/$cmd.txt" or die;
 | |
| 			while (<$f>) {
 | |
| 				($s) = /^$cmd - (.+)$/;
 | |
| 				last if $s;
 | |
| 			}
 | |
| 			close $f;
 | |
| 			$cmd =~ s/^git-//;
 | |
| 			print "\t{\"$cmd\", N_(\"$s\"), $grp{$t}},\n";
 | |
| 			last;
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| print "};\n";
 |