]> git.ipfire.org Git - thirdparty/git.git/blob - generate-cmdlist.sh
Merge branch 'ew/http-alternates-as-redirects-warning' into maint
[thirdparty/git.git] / generate-cmdlist.sh
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 "};"