diff --git a/webhook.go b/webhook.go index 5d41077..8ce27d2 100644 --- a/webhook.go +++ b/webhook.go @@ -10,6 +10,7 @@ import ( "net/url" "os" "os/exec" + "path/filepath" "strings" "time" @@ -328,6 +329,13 @@ func handleHook(h *hook.Hook, rid string, headers, query, payload *map[string]in // check the command exists cmdPath, err := exec.LookPath(h.ExecuteCommand) + if err != nil { + // give a last chance, maybe is a relative path + relativeToCwd := filepath.Join(h.CommandWorkingDirectory, h.ExecuteCommand) + // check the command exists + cmdPath, err = exec.LookPath(relativeToCwd) + } + if err != nil { log.Printf("unable to locate command: '%s'", h.ExecuteCommand)