| #!/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 "};" |