Staging
v0.5.1
https://github.com/git/git
Revision 7ecec52d42a964c4a8e9f6ca41bb0b5ce00049b4 authored by Junio C Hamano on 25 June 2015, 18:08:39 UTC, committed by Junio C Hamano on 25 June 2015, 18:08:39 UTC
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent c82b6d3
Raw File
Tip revision: 7ecec52d42a964c4a8e9f6ca41bb0b5ce00049b4 authored by Junio C Hamano on 25 June 2015, 18:08:39 UTC
Git 2.5.0-rc0
Tip revision: 7ecec52
generate-cmdlist.perl
#!/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";
back to top