#!/bin/sh | |
echo "/* Automatically generated by $0 */ | |
struct cmdname_help { | |
char name[16]; | |
char help[80]; | |
unsigned char group; | |
}; | |
static const char *common_cmd_groups[] = {" | |
grps=grps$$.tmp | |
match=match$$.tmp | |
trap "rm -f '$grps' '$match'" 0 1 2 3 15 | |
sed -n ' | |
1,/^### common groups/b | |
/^### command list/q | |
/^#/b | |
/^[ ]*$/b | |
h;s/^[^ ][^ ]*[ ][ ]*\(.*\)/ N_("\1"),/p | |
g;s/^\([^ ][^ ]*\)[ ].*/\1/w '$grps' | |
' "$1" | |
printf '};\n\n' | |
n=0 | |
substnum= | |
while read grp | |
do | |
echo "^git-..*[ ]$grp" | |
substnum="$substnum${substnum:+;}s/[ ]$grp/$n/" | |
n=$(($n+1)) | |
done <"$grps" >"$match" | |
printf 'static struct cmdname_help common_cmds[] = {\n' | |
grep -f "$match" "$1" | | |
sed 's/^git-//' | | |
sort | | |
while read cmd tags | |
do | |
tag=$(echo "$tags" | sed "$substnum; s/[^0-9]//g") | |
sed -n ' | |
/^NAME/,/git-'"$cmd"'/H | |
${ | |
x | |
s/.*git-'"$cmd"' - \(.*\)/ {"'"$cmd"'", N_("\1"), '$tag'},/ | |
p | |
}' "Documentation/git-$cmd.txt" | |
done | |
echo "};" |