@@ -407,7 +407,7 @@ int run_hooks(const char *hookname, struct run_hooks_opt *options)
pick_next_hook,
notify_start_failure,
options->feed_pipe,
- NULL,
+ options->consume_sideband,
notify_hook_finished,
&cb_data,
"hook",
@@ -76,6 +76,14 @@ struct run_hooks_opt
feed_pipe_fn feed_pipe;
void *feed_pipe_ctx;
+ /*
+ * 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_sideband_fn consume_sideband;
+
/* Number of threads to parallelize across */
int jobs;
@@ -103,6 +111,7 @@ struct hook_cb_data {
.str_stdin = STRING_LIST_INIT_DUP, \
.feed_pipe = NULL, \
.feed_pipe_ctx = NULL, \
+ .consume_sideband = NULL, \
.run_hookdir = configured_hookdir_opt() \
}
@@ -115,6 +124,7 @@ struct hook_cb_data {
.str_stdin = STRING_LIST_INIT_DUP, \
.feed_pipe = NULL, \
.feed_pipe_ctx = NULL, \
+ .consume_sideband = NULL, \
.run_hookdir = configured_hookdir_opt() \
}
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> --- Notes: You can see this in practice in the conversions for some of the push hooks, like 'receive-pack'. hook.c | 2 +- hook.h | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-)