Thread (20 messages) 20 messages, 7 authors, 2021-07-12

Re: [PATCH 3/3] hook-list.h: add a generated list of hooks, like config-list.h

From: Johannes Schindelin <hidden>
Date: 2021-06-22 22:32:54

Hi René,

On Sun, 20 Jun 2021, René Scharfe wrote:
Am 18.06.21 um 19:05 schrieb SZEDER Gábor:
quoted
On Thu, Jun 17, 2021 at 12:09:36PM +0200, Ævar Arnfjörð Bjarmason wrote:
quoted
diff --git a/generate-hooklist.sh b/generate-hooklist.sh
new file mode 100755
index 0000000000..5a3f7f849c
--- /dev/null
+++ b/generate-hooklist.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+echo "/* Automatically generated by generate-hooklist.sh */"
+
+print_hook_list () {
+	cat <<EOF
+static const char *hook_name_list[] = {
+EOF
+	perl -ne '
Why Perl?

At the moment I can run 'make' and get a functioning git even when
Perl is not installed.  With this patch that wouldn't work anymore.

Both 'generate-cmdlist.sh' and 'generate-configlist.sh' can process
the documentation into a header file with a long list in it without
resorting to Perl; I'm sure that hooks could be processed without Perl
as well.
quoted
+		chomp;
+		@l[$.] = $_;
+		push @h => $l[$. - 1] if /^~~~+$/s;
+		END {
+			print qq[\t"$_",\n] for sort @h;
+		}
+	' <Documentation/githooks.txt
How about something like this?

	sed -n '/^~~~~*$/ {x; p;}; x' Documentation/githooks.txt |
	sort |
	sed 's/^.*$/	"&",/'

sed is already used by generate-configlist.sh.
I do like me a good sed script.

Thanks,
Dscho
quoted
quoted
+	cat <<EOF
+	NULL,
+};
+EOF
+}
+
+echo
+print_hook_list
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help