Skip to content

Commit

Permalink
Merge branch 'sg/help-group'
Browse files Browse the repository at this point in the history
We rewrote one of the build scripts in Perl but this reimplements
in Bourne shell.

* sg/help-group:
  generate-cmdlist: re-implement as shell script
  • Loading branch information
Junio C Hamano committed Aug 26, 2015
2 parents 6525496 + 82aec45 commit 678c5a4
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 52 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1698,10 +1698,10 @@ $(BUILT_INS): git$X
ln -s $< $@ 2>/dev/null || \
cp $< $@

common-cmds.h: generate-cmdlist.perl command-list.txt
common-cmds.h: generate-cmdlist.sh command-list.txt

common-cmds.h: $(wildcard Documentation/git-*.txt)
$(QUIET_GEN)$(PERL_PATH) generate-cmdlist.perl command-list.txt > $@+ && mv $@+ $@
$(QUIET_GEN)./generate-cmdlist.sh command-list.txt >$@+ && mv $@+ $@

SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
$(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\
Expand Down
50 changes: 0 additions & 50 deletions generate-cmdlist.perl

This file was deleted.

50 changes: 50 additions & 0 deletions generate-cmdlist.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/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 "};"

0 comments on commit 678c5a4

Please sign in to comment.