hooks: allow callers to capture output

Some server-side hooks will require capturing output to send over
sideband instead of printing directly to stderr. Expose that capability.

Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Emily Shaffer
2025-12-04 16:15:33 +02:00
committed by Junio C Hamano
parent 0d192fb5d3
commit 4756b0e00b
2 changed files with 9 additions and 0 deletions

1
hook.c
View File

@@ -158,6 +158,7 @@ int run_hooks_opt(struct repository *r, const char *hook_name,
.get_next_task = pick_next_hook,
.start_failure = notify_start_failure,
.feed_pipe = options->feed_pipe,
.consume_output = options->consume_output,
.task_finished = notify_hook_finished,
.data = &cb_data,

8
hook.h
View File

@@ -80,6 +80,14 @@ struct run_hooks_opt
* Only useful when using `run_hooks_opt.feed_pipe`, otherwise ignore it.
*/
void *feed_pipe_cb_data;
/*
* Populate this to capture output and prevent it from being printed to
* stderr. This will be passed directly through to
* run_command:run_parallel_processes(). See t/helper/test-run-command.c
* for an example.
*/
consume_output_fn consume_output;
};
#define RUN_HOOKS_OPT_INIT { \