From: Emily Shaffer <redacted>
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 <redacted>
Signed-off-by: Ævar Arnfjörð Bjarmason <redacted>
---
hook.c | 3 ++-
hook.h | 8 ++++++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/hook.c b/hook.c
index 9ae3007cdd3..efed5f73b4d 100644
--- a/hook.c
+++ b/hook.c
@@ -203,12 +203,13 @@ int run_hooks(const char *hook_name, const char *hook_path,
pick_next_hook,
notify_start_failure,
options->feed_pipe,
- NULL,
+ options->consume_sideband,
notify_hook_finished,
&cb_data,
"hook",
hook_name);
+
if (options->absolute_path)
strbuf_release(&abs_path);
free(my_hook.feed_pipe_cb_data);
diff --git a/hook.h b/hook.h
index b55f283f90b..37a9690c2ca 100644
--- a/hook.h
+++ b/hook.h
@@ -58,6 +58,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;
};
#define RUN_HOOKS_OPT_INIT { \--
2.33.0.rc0.595.ge31e012651d