From 049acba9e46ef8db2a01b899141612497ad31103 Mon Sep 17 00:00:00 2001 From: ezekg Date: Mon, 23 Nov 2015 12:32:27 -0600 Subject: [PATCH] handle invalid regex patterns. close #2 --- hound.go | 2 +- main.go | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hound.go b/hound.go index 9561cc2..7786f13 100644 --- a/hound.go +++ b/hound.go @@ -85,7 +85,7 @@ func (h *Hound) Sniff(fileName string, hunk *diff.Hunk, warnc chan string, failc func (h *Hound) Match(pattern string, subject []byte) bool { r, err := regexp.Compile(pattern) if err != nil { - return false + panic(err) } return r.Match(subject) diff --git a/main.go b/main.go index b350ac8..7cf5caf 100644 --- a/main.go +++ b/main.go @@ -48,7 +48,15 @@ func main() { hunks := fileDiff.GetHunks() for _, hunk := range hunks { - go hound.Sniff(fileName, hunk, warnc, failc, donec) + go func(hunk *diff.Hunk) { + defer func() { + if r := recover(); r != nil { + fmt.Print(color.RedString(fmt.Sprintf("%s\n", r))) + os.Exit(1) + } + }() + hound.Sniff(fileName, hunk, warnc, failc, donec) + }(hunk) hunkCount++ } }