Browse Source

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>
maint
Shawn O. Pearce 18 years ago committed by Junio C Hamano
parent
commit
6c319a22e4
  1. 43
      receive-pack.c

43
receive-pack.c

@ -71,6 +71,29 @@ static const char update_hook[] = "hooks/update"; @@ -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, @@ -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…
Cancel
Save