+static char update_post_hook[] = "hooks/post-update";
+
+static void run_update_post_hook(struct command *cmd)
+{
+ struct command *cmd_p;
+ int argc;
+ char **argv;
+
+ if (access(update_post_hook, X_OK) < 0)
+ return;
+ for (argc = 1, cmd_p = cmd; cmd_p; cmd_p = cmd_p->next) {
+ if (!cmd_p->updated)
+ continue;
+ argc++;
+ }
+ argv = xmalloc(sizeof(*argv) * (1 + argc));
+ argv[0] = update_post_hook;
+
+ for (argc = 1, cmd_p = cmd; cmd_p; cmd_p = cmd_p->next) {
+ if (!cmd_p->updated)
+ continue;
+ argv[argc] = xmalloc(strlen(cmd_p->ref_name) + 1);
+ strcpy(argv[argc], cmd_p->ref_name);
+ argc++;
+ }
+ argv[argc] = NULL;
+ run_command_v_opt(argc, argv, RUN_COMMAND_NO_STDIO);
+}