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>
This commit is contained in:

committed by
Junio C Hamano

parent
f53df0bdf6
commit
5e3aba33da
@ -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;
|
||||
|
Reference in New Issue
Block a user