51 lines
861 B
Plaintext
51 lines
861 B
Plaintext
|
#!/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";
|