| static int do_generic_cmd(const char *me, char *arg) |
| return execvp(me, (char**) my_argv); |
| int (*exec)(const char *me, char *arg); |
| { "git-receive-pack", do_generic_cmd }, |
| { "git-upload-pack", do_generic_cmd }, |
| int main(int argc, char **argv) |
| /* We want to see "-c cmd args", and nothing else */ |
| if (argc != 3 || strcmp(argv[1], "-c")) |
| die("What do you think I am? A shell?"); |
| for (cmd = cmd_list ; cmd->name ; cmd++) { |
| int len = strlen(cmd->name); |
| if (strncmp(cmd->name, prog, len)) |
| exit(cmd->exec(cmd->name, arg)); |
| die("unrecognized command '%s'", prog); |