Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > The current generate-cmds.sh generates just enough to print "git help" > output. That is, it only extracts help text for common commands. > > The script is now updated to extract help text for all commands and > keep command classification a new file, command-list.h. This will be > useful later: > > - "git help -a" could print a short summary of all commands instead of > just the common ones. > > - "git" could produce a list of commands of one or more category. One > of its use is to reduce another command classification embedded in > git-completion.bash. > > The new file can be generated but is not used anywhere yet. The plan > is we migrate away from common-cmds.h. Then we can kill off > common-cmds.h build rules and generation code (and also delete > duplicate content in command-list.h which we keep for now to not mess > generate-cmds.sh up too much). > > PS. The new fixed column requirement on command-list.txt is > technically not needed. But it helps simplify the code a bit at this > stage. We could lift this restriction later if we want to. > --- Missing sign-off. > diff --git a/generate-cmdlist.sh b/generate-cmdlist.sh > index 31b6d886cb..c9fd524760 100755 > --- a/generate-cmdlist.sh > +++ b/generate-cmdlist.sh > @@ -1,5 +1,27 @@ > #!/bin/sh > > +die () { > + echo "$@" >&2 > + exit 1 > +} > + > +command_list () { > + sed '1,/^### command list/d;/^#/d' "$1" > +} > + > +get_categories() { Here and define_categories() below lack SP before (), and all others do. Be consistent. > + tr ' ' '\n'| > + grep -v '^$' | > + sort | > + uniq > +} > + > +category_list () { > + command_list "$1" | > + cut -c 40- | > + get_categories > +} > + > get_synopsis () { > sed -n ' > /^NAME/,/'"$1"'/H > @@ -10,14 +32,51 @@ get_synopsis () { > }' "Documentation/$1.txt" > } > > +define_categories() { > + echo > + echo "/* Command categories */" > +... > }; > +" > +if [ -z "$2" ] if test -z "$2"