diff options
author | Phillip Wood <phillip.wood@dunelm.org.uk> | 2019-10-15 12:25:31 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-10-16 03:30:51 +0200 |
commit | 49697cb72122cf84b44111124821c9a4bcba3ab6 (patch) | |
tree | ff996f05507c53a17a63510919a986d22ba528e0 /commit.c | |
parent | sequencer.h fix placement of #endif (diff) | |
download | git-49697cb72122cf84b44111124821c9a4bcba3ab6.tar.xz git-49697cb72122cf84b44111124821c9a4bcba3ab6.zip |
move run_commit_hook() to libgit and use it there
This function was declared in commit.h but was implemented in
builtin/commit.c so was not part of libgit. Move it to libgit so we can
use it in the sequencer. This simplifies the implementation of
run_prepare_commit_msg_hook() and will be used in the next commit.
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'commit.c')
-rw-r--r-- | commit.c | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -19,6 +19,7 @@ #include "advice.h" #include "refs.h" #include "commit-reach.h" +#include "run-command.h" static struct commit_extra_header *read_commit_extra_header_lines(const char *buf, size_t len, const char **); @@ -1581,3 +1582,26 @@ size_t ignore_non_trailer(const char *buf, size_t len) } return boc ? len - boc : len - cutoff; } + +int run_commit_hook(int editor_is_used, const char *index_file, + const char *name, ...) +{ + struct argv_array hook_env = ARGV_ARRAY_INIT; + va_list args; + int ret; + + argv_array_pushf(&hook_env, "GIT_INDEX_FILE=%s", index_file); + + /* + * Let the hook know that no editor will be launched. + */ + if (!editor_is_used) + argv_array_push(&hook_env, "GIT_EDITOR=:"); + + va_start(args, name); + ret = run_hook_ve(hook_env.argv,name, args); + va_end(args); + argv_array_clear(&hook_env); + + return ret; +} |