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