diff options
Diffstat (limited to 'hook.c')
| -rw-r--r-- | hook.c | 42 |
1 files changed, 25 insertions, 17 deletions
@@ -1,16 +1,23 @@ -#include "cache.h" +#include "git-compat-util.h" +#include "abspath.h" +#include "advice.h" +#include "gettext.h" #include "hook.h" +#include "path.h" #include "run-command.h" #include "config.h" +#include "strbuf.h" +#include "environment.h" +#include "setup.h" -const char *find_hook(const char *name) +const char *find_hook(struct repository *r, const char *name) { static struct strbuf path = STRBUF_INIT; int found_hook; strbuf_reset(&path); - strbuf_git_path(&path, "hooks/%s", name); + strbuf_repo_git_path(&path, r, "hooks/%s", name); found_hook = access(path.buf, X_OK) >= 0; #ifdef STRIP_EXTENSION if (!found_hook) { @@ -41,15 +48,15 @@ const char *find_hook(const char *name) return path.buf; } -int hook_exists(const char *name) +int hook_exists(struct repository *r, const char *name) { - return !!find_hook(name); + return !!find_hook(r, name); } static int pick_next_hook(struct child_process *cp, - struct strbuf *out, + struct strbuf *out UNUSED, void *pp_cb, - void **pp_task_cb) + void **pp_task_cb UNUSED) { struct hook_cb_data *hook_cb = pp_cb; const char *hook_path = hook_cb->hook_path; @@ -81,9 +88,9 @@ static int pick_next_hook(struct child_process *cp, return 1; } -static int notify_start_failure(struct strbuf *out, +static int notify_start_failure(struct strbuf *out UNUSED, void *pp_cb, - void *pp_task_cp) + void *pp_task_cp UNUSED) { struct hook_cb_data *hook_cb = pp_cb; @@ -93,9 +100,9 @@ static int notify_start_failure(struct strbuf *out, } static int notify_hook_finished(int result, - struct strbuf *out, + struct strbuf *out UNUSED, void *pp_cb, - void *pp_task_cb) + void *pp_task_cb UNUSED) { struct hook_cb_data *hook_cb = pp_cb; struct run_hooks_opt *opt = hook_cb->options; @@ -114,7 +121,8 @@ static void run_hooks_opt_clear(struct run_hooks_opt *options) strvec_clear(&options->args); } -int run_hooks_opt(const char *hook_name, struct run_hooks_opt *options) +int run_hooks_opt(struct repository *r, const char *hook_name, + struct run_hooks_opt *options) { struct strbuf abs_path = STRBUF_INIT; struct hook_cb_data cb_data = { @@ -122,7 +130,7 @@ int run_hooks_opt(const char *hook_name, struct run_hooks_opt *options) .hook_name = hook_name, .options = options, }; - const char *const hook_path = find_hook(hook_name); + const char *const hook_path = find_hook(r, hook_name); int ret = 0; const struct run_process_parallel_opts opts = { .tr2_category = "hook", @@ -166,14 +174,14 @@ cleanup: return ret; } -int run_hooks(const char *hook_name) +int run_hooks(struct repository *r, const char *hook_name) { struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT; - return run_hooks_opt(hook_name, &opt); + return run_hooks_opt(r, hook_name, &opt); } -int run_hooks_l(const char *hook_name, ...) +int run_hooks_l(struct repository *r, const char *hook_name, ...) { struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT; va_list ap; @@ -184,5 +192,5 @@ int run_hooks_l(const char *hook_name, ...) strvec_push(&opt.args, arg); va_end(ap); - return run_hooks_opt(hook_name, &opt); + return run_hooks_opt(r, hook_name, &opt); } |
