]>
Commit | Line | Data |
---|---|---|
82aec45b ES |
1 | #!/bin/sh |
2 | ||
3 | echo "/* Automatically generated by $0 */ | |
4 | struct cmdname_help { | |
5 | char name[16]; | |
6 | char help[80]; | |
7 | unsigned char group; | |
8 | }; | |
9 | ||
10 | static const char *common_cmd_groups[] = {" | |
11 | ||
12 | grps=grps$$.tmp | |
13 | match=match$$.tmp | |
14 | trap "rm -f '$grps' '$match'" 0 1 2 3 15 | |
15 | ||
16 | sed -n ' | |
17 | 1,/^### common groups/b | |
18 | /^### command list/q | |
19 | /^#/b | |
20 | /^[ ]*$/b | |
21 | h;s/^[^ ][^ ]*[ ][ ]*\(.*\)/ N_("\1"),/p | |
22 | g;s/^\([^ ][^ ]*\)[ ].*/\1/w '$grps' | |
23 | ' "$1" | |
24 | printf '};\n\n' | |
25 | ||
26 | n=0 | |
27 | substnum= | |
28 | while read grp | |
29 | do | |
30 | echo "^git-..*[ ]$grp" | |
31 | substnum="$substnum${substnum:+;}s/[ ]$grp/$n/" | |
32 | n=$(($n+1)) | |
33 | done <"$grps" >"$match" | |
34 | ||
35 | printf 'static struct cmdname_help common_cmds[] = {\n' | |
36 | grep -f "$match" "$1" | | |
37 | sed 's/^git-//' | | |
38 | sort | | |
39 | while read cmd tags | |
40 | do | |
41 | tag=$(echo "$tags" | sed "$substnum; s/[^0-9]//g") | |
42 | sed -n ' | |
43 | /^NAME/,/git-'"$cmd"'/H | |
44 | ${ | |
45 | x | |
46 | s/.*git-'"$cmd"' - \(.*\)/ {"'"$cmd"'", N_("\1"), '$tag'},/ | |
47 | p | |
48 | }' "Documentation/git-$cmd.txt" | |
49 | done | |
50 | echo "};" |