| 1 | #!/bin/sh |
| 2 | # |
| 3 | # Usage: ./generate-hooklist.sh >hook-list.h |
| 4 | |
| 5 | SOURCE_DIR="$1" |
| 6 | OUTPUT="$2" |
| 7 | |
| 8 | if test -z "$SOURCE_DIR" || ! test -d "$SOURCE_DIR" || test -z "$OUTPUT" |
| 9 | then |
| 10 | echo >&2 "USAGE: $0 <SOURCE_DIR> <OUTPUT>" |
| 11 | exit 1 |
| 12 | fi |
| 13 | |
| 14 | { |
| 15 | |
| 16 | cat <<EOF |
| 17 | /* Automatically generated by generate-hooklist.sh */ |
| 18 | |
| 19 | static const char *hook_name_list[] = { |
| 20 | EOF |
| 21 | |
| 22 | sed -n \ |
| 23 | -e '/^~~~~*$/ {x; s/^.*$/ "&",/; p;}' \ |
| 24 | -e 'x' \ |
| 25 | <"$SOURCE_DIR"/Documentation/githooks.adoc | |
| 26 | LC_ALL=C sort |
| 27 | |
| 28 | cat <<EOF |
| 29 | NULL, |
| 30 | }; |
| 31 | EOF |
| 32 | |
| 33 | } >"$OUTPUT" |