summaryrefslogtreecommitdiff
path: root/generate-hooklist.sh
diff options
context:
space:
mode:
Diffstat (limited to 'generate-hooklist.sh')
-rwxr-xr-xgenerate-hooklist.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/generate-hooklist.sh b/generate-hooklist.sh
new file mode 100755
index 0000000000..e0cdf26944
--- /dev/null
+++ b/generate-hooklist.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+# Usage: ./generate-hooklist.sh >hook-list.h
+
+SOURCE_DIR="$1"
+OUTPUT="$2"
+
+if test -z "$SOURCE_DIR" || ! test -d "$SOURCE_DIR" || test -z "$OUTPUT"
+then
+ echo >&2 "USAGE: $0 <SOURCE_DIR> <OUTPUT>"
+ exit 1
+fi
+
+{
+
+cat <<EOF
+/* Automatically generated by generate-hooklist.sh */
+
+static const char *hook_name_list[] = {
+EOF
+
+sed -n \
+ -e '/^~~~~*$/ {x; s/^.*$/ "&",/; p;}' \
+ -e 'x' \
+ <"$SOURCE_DIR"/Documentation/githooks.adoc |
+ LC_ALL=C sort
+
+cat <<EOF
+ NULL,
+};
+EOF
+
+} >"$OUTPUT"