Raw
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"