Re: [PATCH 8/8] hook-list.h: add a generated list of hooks, like config-list.h
From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2021-09-24 20:14:34
On Fri, Sep 24 2021, René Scharfe wrote:
Am 24.09.21 um 21:30 schrieb Ævar Arnfjörð Bjarmason:quoted
On Fri, Sep 24 2021, Phillip Wood wrote:quoted
Hi Ævar On 23/09/2021 11:30, Ævar Arnfjörð Bjarmason wrote:quoted
diff --git a/generate-hooklist.sh b/generate-hooklist.sh new file mode 100755 index 00000000000..6d4e56d1a31 --- /dev/null +++ b/generate-hooklist.sh@@ -0,0 +1,18 @@ +#!/bin/sh +# +# Usage: ./generate-hooklist.sh >hook-list.h + +cat <<EOF +/* Automatically generated by generate-hooklist.sh */ + +static const char *hook_name_list[] = { +EOF + +sed -n -e '/^~~~~*$/ {x; s/^.*$/ "&",/; p;}; x' \POSIX does not support using a semicolon after a closing brace [1], grepping our code base with git grep 'sed .*};' '*.sh' does not give any matches so I don't think we're using that pattern any where else. Replacing the semicolon with ' -e' would fix it. Best Wishes PhillipDoes this fail on any system you're aware of? If so what OS/version (and preferably version of "sed").I wasn't aware of that restriction and my gut feeling is that enforcing it in a sed implementation would be slightly harder than allowing "};".quoted
René's downthread [ref] seems to suggest that this is fine.That said, I didn't mean to suggest that we keep using this construct, just that I couldn't find an implementation which would reject it.
I'll re-test without "};", my (seemingly incorrect) quick read of your E-Mail + my own testing was that semicolons were fine there, but maybe they're just accepted by most...
quoted
Both beforehand and just now I've tested this on AIX, Solaris, {Open,Net,Free}BSD, HP/UX, OSX and Linux (a few distros/versions). All of them are able to generate the same hook-list.h using this version of the patch.Impressive list.
FWIW that's just the GCC Farm which is fairly easy to get access to for free software devlopment: https://cfarm.tetaneutral.net/machines/list/ The HP/UX box is a similar "private" setup mainly for Perl5 core development, I'm getting to use it to get git working there.
but still it's probably better to move the last "x" to its own -e, to appease the POSIX spirits. Small change..
*nod*, will test with some version of that.