Staging
v0.5.1
v0.5.1
Revision 876b1423317071f43c99666f3fc3db3642dfbe14 authored by Junio C Hamano on 03 November 2021, 20:32:40 UTC, committed by Junio C Hamano on 03 November 2021, 20:32:40 UTC
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 0cb1330
hook.c
#include "cache.h"
#include "hook.h"
#include "run-command.h"
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 hook_exists(const char *name)
{
return !!find_hook(name);
}
Computing file changes ...