Browse Source
Parse the group block to create the array of group descriptions: static char *common_cmd_groups[] = { N_("starting a working area"), N_("working on the current change"), N_("working with others"), N_("examining the history and state"), N_("growing, marking and tweaking your history"), }; then map each element of common_cmds[] to a group via its index: static struct cmdname_help common_cmds[] = { {"add", N_("Add file contents to the index"), 1}, {"branch", N_("List, create, or delete branches"), 4}, {"checkout", N_("Checkout a branch or paths to the ..."), 4}, {"clone", N_("Clone a repository into a new directory"), 0}, {"commit", N_("Record changes to the repository"), 4}, ... }; so that 'git help' can print those commands grouped by theme. Only commands tagged with an attribute from the group block are emitted to common_cmds[]. [commit message by Sébastien Guimmara <sebastien.guimmara@gmail.com>] Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Sébastien Guimmara <sebastien.guimmara@gmail.com> Reviewed-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint


3 changed files with 52 additions and 25 deletions
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
#!/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"; |
@ -1,23 +0,0 @@
@@ -1,23 +0,0 @@
|
||||
#!/bin/sh |
||||
|
||||
echo "/* Automatically generated by $0 */ |
||||
struct cmdname_help { |
||||
char name[16]; |
||||
char help[80]; |
||||
}; |
||||
|
||||
static struct cmdname_help common_cmds[] = {" |
||||
|
||||
sed -n -e 's/^git-\([^ ]*\)[ ].* common.*/\1/p' command-list.txt | |
||||
sort | |
||||
while read cmd |
||||
do |
||||
sed -n ' |
||||
/^NAME/,/git-'"$cmd"'/H |
||||
${ |
||||
x |
||||
s/.*git-'"$cmd"' - \(.*\)/ {"'"$cmd"'", N_("\1")},/ |
||||
p |
||||
}' "Documentation/git-$cmd.txt" |
||||
done |
||||
echo "};" |
Loading…
Reference in new issue