diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2007-03-10 03:28:11 -0500 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-03-11 22:49:43 -0700 |
commit | 6c319a22e47e6b49d799f5893aeac92e723a5e6f (patch) | |
tree | 8949b9a7b162990524f76aa71a6d1500991aaaf7 | |
parent | Teach run_command how to setup a stdin pipe (diff) | |
download | tgif-6c319a22e47e6b49d799f5893aeac92e723a5e6f.tar.xz |
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 <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | receive-pack.c | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/receive-pack.c b/receive-pack.c index 675c88f492..e147076056 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) |