From 6145e1439b9de93806925353403f91d2abbad8a5 Mon Sep 17 00:00:00 2001 From: Benjamin Radovsky Date: Thu, 10 Aug 2017 16:39:29 +1000 Subject: [PATCH] run command in separate goroutine to prevent block --- cmd/watcher/main.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/cmd/watcher/main.go b/cmd/watcher/main.go index 025dcc2..88d2e69 100644 --- a/cmd/watcher/main.go +++ b/cmd/watcher/main.go @@ -134,15 +134,17 @@ func main() { }() // Run the command before watcher starts if one was specified. - if *cmd != "" && *startcmd { - c := exec.Command(cmdName, cmdArgs...) - c.Stdin = os.Stdin - c.Stdout = os.Stdout - c.Stderr = os.Stderr - if err := c.Run(); err != nil { - log.Fatalln(err) + go func() { + if *cmd != "" && *startcmd { + c := exec.Command(cmdName, cmdArgs...) + c.Stdin = os.Stdin + c.Stdout = os.Stdout + c.Stderr = os.Stderr + if err := c.Run(); err != nil { + log.Fatalln(err) + } } - } + }() // Start the watching process. if err := w.Start(parsedInterval); err != nil {