diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2021-09-26 19:03:26 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-09-27 16:44:54 (GMT) |
commit | 5e3aba33da26803e48b0099c9dabfd327f7f8b8b (patch) | |
tree | 94dd10330838789b0e800a3f4fb152d6b220e38e /run-command.c | |
parent | f53df0bdf6d5ea9da12b97fc7f87b1dd3681b278 (diff) | |
download | git-5e3aba33da26803e48b0099c9dabfd327f7f8b8b.zip git-5e3aba33da26803e48b0099c9dabfd327f7f8b8b.tar.gz git-5e3aba33da26803e48b0099c9dabfd327f7f8b8b.tar.bz2 |
hook.[ch]: move find_hook() from run-command.c to hook.c
Move the find_hook() function from run-command.c to a new hook.c
library. This change establishes a stub library that's pretty
pointless right now, but will see much wider use with Emily Shaffer's
upcoming "configuration-based hooks" series.
Eventually all the hook related code will live in hook.[ch]. Let's
start that process by moving the simple find_hook() function over
as-is.
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'run-command.c')
-rw-r--r-- | run-command.c | 35 |
1 files changed, 1 insertions, 34 deletions
diff --git a/run-command.c b/run-command.c index 04a07e6..e4862b8 100644 --- a/run-command.c +++ b/run-command.c @@ -9,6 +9,7 @@ #include "quote.h" #include "config.h" #include "packfile.h" +#include "hook.h" void child_process_init(struct child_process *child) { @@ -1322,40 +1323,6 @@ int async_with_fork(void) #endif } -const char *find_hook(const char *name) -{ - static struct strbuf path = STRBUF_INIT; - - strbuf_reset(&path); - strbuf_git_path(&path, "hooks/%s", name); - if (access(path.buf, X_OK) < 0) { - int err = errno; - -#ifdef STRIP_EXTENSION - strbuf_addstr(&path, STRIP_EXTENSION); - if (access(path.buf, X_OK) >= 0) - return path.buf; - if (errno == EACCES) - err = errno; -#endif - - if (err == EACCES && advice_enabled(ADVICE_IGNORED_HOOK)) { - static struct string_list advise_given = STRING_LIST_INIT_DUP; - - if (!string_list_lookup(&advise_given, name)) { - string_list_insert(&advise_given, name); - advise(_("The '%s' hook was ignored because " - "it's not set as executable.\n" - "You can disable this warning with " - "`git config advice.ignoredHook false`."), - path.buf); - } - } - return NULL; - } - return path.buf; -} - int run_hook_ve(const char *const *env, const char *name, va_list args) { struct child_process hook = CHILD_PROCESS_INIT; |