From 0386b5ae540b2a86d201db8135684075a26bc5fe Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 14 Feb 2017 18:06:54 -0500 Subject: [PATCH] cmd/hook: check existence before call custom hook --- cmd/hook.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cmd/hook.go b/cmd/hook.go index a917554d5..1a4943736 100644 --- a/cmd/hook.go +++ b/cmd/hook.go @@ -11,6 +11,7 @@ import ( "os/exec" "path/filepath" + "github.com/Unknwon/com" "github.com/urfave/cli" "github.com/gogits/gogs/models" @@ -65,6 +66,10 @@ func runHookPreReceive(c *cli.Context) error { } customHooksPath := os.Getenv(_ENV_REPO_CUSTOM_HOOKS_PATH) + if !com.IsFile(customHooksPath) { + return nil + } + hookCmd := exec.Command(filepath.Join(customHooksPath, "pre-receive")) hookCmd.Stdout = os.Stdout hookCmd.Stdin = buf @@ -99,6 +104,10 @@ func runHookUpdate(c *cli.Context) error { } customHooksPath := os.Getenv(_ENV_REPO_CUSTOM_HOOKS_PATH) + if !com.IsFile(customHooksPath) { + return nil + } + hookCmd := exec.Command(filepath.Join(customHooksPath, "update"), args...) hookCmd.Stdout = os.Stdout hookCmd.Stdin = os.Stdin @@ -116,6 +125,10 @@ func runHookPostReceive(c *cli.Context) error { setup(c, "hooks/post-receive.log") customHooksPath := os.Getenv(_ENV_REPO_CUSTOM_HOOKS_PATH) + if !com.IsFile(customHooksPath) { + return nil + } + hookCmd := exec.Command(filepath.Join(customHooksPath, "post-receive")) hookCmd.Stdout = os.Stdout hookCmd.Stdin = os.Stdin