From 6c319a22e47e6b49d799f5893aeac92e723a5e6f Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Sat, 10 Mar 2007 03:28:11 -0500 Subject: [PATCH] Refactor run_command error handling in receive-pack I'm pulling the error handling used to decode the result of run_command up into a new function so that I can reuse it. No changes, just a simple code movement. Signed-off-by: Shawn O. Pearce Signed-off-by: Junio C Hamano --- receive-pack.c | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/receive-pack.c b/receive-pack.c index 675c88f49..e14707605 100644 --- a/receive-pack.c +++ b/receive-pack.c @@ -71,6 +71,29 @@ static const char update_hook[] = "hooks/update"; static const char pre_receive_hook[] = "hooks/pre-receive"; static const char post_receive_hook[] = "hooks/post-receive"; +static int hook_status(int code, const char *hook_name) +{ + switch (code) { + case 0: + return 0; + case -ERR_RUN_COMMAND_FORK: + return error("hook fork failed"); + case -ERR_RUN_COMMAND_EXEC: + return error("hook execute failed"); + case -ERR_RUN_COMMAND_WAITPID: + return error("waitpid failed"); + case -ERR_RUN_COMMAND_WAITPID_WRONG_PID: + return error("waitpid is confused"); + case -ERR_RUN_COMMAND_WAITPID_SIGNAL: + return error("%s died of signal", hook_name); + case -ERR_RUN_COMMAND_WAITPID_NOEXIT: + return error("%s died strangely", hook_name); + default: + error("%s exited with error code %d", hook_name, -code); + return -code; + } +} + static int run_hook(const char *hook_name, struct command *first_cmd, int single) @@ -108,25 +131,7 @@ static int run_hook(const char *hook_name, free((char*)argv[argc]); free(argv); - switch (code) { - case 0: - return 0; - case -ERR_RUN_COMMAND_FORK: - return error("hook fork failed"); - case -ERR_RUN_COMMAND_EXEC: - return error("hook execute failed"); - case -ERR_RUN_COMMAND_WAITPID: - return error("waitpid failed"); - case -ERR_RUN_COMMAND_WAITPID_WRONG_PID: - return error("waitpid is confused"); - case -ERR_RUN_COMMAND_WAITPID_SIGNAL: - return error("%s died of signal", hook_name); - case -ERR_RUN_COMMAND_WAITPID_NOEXIT: - return error("%s died strangely", hook_name); - default: - error("%s exited with error code %d", hook_name, -code); - return -code; - } + return hook_status(code, hook_name); } static const char *update(struct command *cmd) -- 2.45.2