git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 10/13] commit: convert {pre-commit,prepare-commit-msg} hook to hook.h

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Oct 12, 2021, 13:30 UTC
Message-ID
<patch-10.13-1c22b2992cf-20211012T131934Z-avarab@gmail.com>
In-Reply-To
<cover-00.13-00000000000-20211012T131934Z-avarab@gmail.com>
From: Emily Shaffer <emilyshaffer@google.com>

Move these hooks hook away from run-command.h to and over to the new hook.h library.

Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 commit.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/commit.c b/commit.c
index 551de4903c1..4e7cbd7585d 100644
--- a/commit.c
+++ b/commit.c
@@ -21,6 +21,7 @@
 #include "commit-reach.h"
 #include "run-command.h"
 #include "shallow.h"
+#include "hook.h"
 
 static struct commit_extra_header *read_commit_extra_header_lines(const char *buf, size_t len, const char **);
 
@@ -1700,22 +1701,22 @@ size_t ignore_non_trailer(const char *buf, size_t len)
 int run_commit_hook(int editor_is_used, const char *index_file,
 		    const char *name, ...)
 {
-	struct strvec hook_env = STRVEC_INIT;
+	struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT;
 	va_list args;
-	int ret;
+	const char *arg;
 
-	strvec_pushf(&hook_env, "GIT_INDEX_FILE=%s", index_file);
+	strvec_pushf(&opt.env, "GIT_INDEX_FILE=%s", index_file);
 
 	/*
 	 * Let the hook know that no editor will be launched.
 	 */
 	if (!editor_is_used)
-		strvec_push(&hook_env, "GIT_EDITOR=:");
+		strvec_push(&opt.env, "GIT_EDITOR=:");
 
 	va_start(args, name);
-	ret = run_hook_ve(hook_env.v, name, args);
+	while ((arg = va_arg(args, const char *)))
+		strvec_push(&opt.args, arg);
 	va_end(args);
-	strvec_clear(&hook_env);
 
-	return ret;
+	return run_hooks_oneshot(name, &opt);
 }
-- 
2.33.0.1567.g7b23ce7ed9e
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 14 of 18 in “hook.[ch]: new library to run hooks + simple hook conversion”
  1. 00/13 hook.[ch]: new library to run hooks + simple hook conversionÆvar Arnfjörð Bjarmason, Oct 12, 2021
  2. 01/13 hook: add 'run' subcommandÆvar Arnfjörð Bjarmason, Oct 12, 2021
  3. René ScharfeOct 12, 2021
  4. Ævar Arnfjörð BjarmasonOct 13, 2021
  5. Bagas SanjayaOct 13, 2021
  6. Ævar Arnfjörð BjarmasonOct 13, 2021
  7. 02/13 gc: use hook library for pre-auto-gc hookÆvar Arnfjörð Bjarmason, Oct 12, 2021
  8. 03/13 rebase: convert pre-rebase to use hook.hÆvar Arnfjörð Bjarmason, Oct 12, 2021
  9. 04/13 am: convert applypatch to use hook.hÆvar Arnfjörð Bjarmason, Oct 12, 2021
  10. 05/13 hooks: convert 'post-checkout' hook to hook libraryÆvar Arnfjörð Bjarmason, Oct 12, 2021
  11. 06/13 merge: convert post-merge to use hook.hÆvar Arnfjörð Bjarmason, Oct 12, 2021
  12. 09/13 git-p4: use 'git hook' to run hooksÆvar Arnfjörð Bjarmason, Oct 12, 2021
  13. 07/13 git hook run: add an --ignore-missing flagÆvar Arnfjörð Bjarmason, Oct 12, 2021
  14. 10/13 commit: convert {pre-commit,prepare-commit-msg} hook to hook.hÆvar Arnfjörð Bjarmason, Oct 12, 2021
  15. 12/13 receive-pack: convert push-to-checkout hook to hook.hÆvar Arnfjörð Bjarmason, Oct 12, 2021
  16. 11/13 read-cache: convert post-index-change to use hook.hÆvar Arnfjörð Bjarmason, Oct 12, 2021
  17. 13/13 run-command: remove old run_hook_{le,ve}() hook APIÆvar Arnfjörð Bjarmason, Oct 12, 2021
  18. 08/13 send-email: use 'git hook run' for 'sendemail-validate'Ævar Arnfjörð Bjarmason, Oct 12, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.