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>
This commit is contained in:
parent
4919bf0354
commit
6c319a22e4
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user