summaryrefslogtreecommitdiff
path: root/internal/regex/regex.go
diff options
context:
space:
mode:
authorPaul Buetow <pbuetow@mimecast.com>2022-02-04 21:37:29 +0000
committerPaul Buetow <pbuetow@mimecast.com>2022-02-04 21:37:29 +0000
commit1db3b5dc1219e34e0e1c612e6646327701c40274 (patch)
treecab22128af9e54131facd0062a474459383a1c90 /internal/regex/regex.go
parent6625d019271d3d7931587167845d77834d187d57 (diff)
parentcc6f19f69d0fb34af96e17147b2030c352d46845 (diff)
merge 4.0.0-RC
Diffstat (limited to 'internal/regex/regex.go')
-rw-r--r--internal/regex/regex.go20
1 files changed, 5 insertions, 15 deletions
diff --git a/internal/regex/regex.go b/internal/regex/regex.go
index 2561659..eb6e1b3 100644
--- a/internal/regex/regex.go
+++ b/internal/regex/regex.go
@@ -4,8 +4,6 @@ import (
"fmt"
"regexp"
"strings"
-
- "github.com/mimecast/dtail/internal/io/logger"
)
// Regex for filtering lines.
@@ -50,9 +48,7 @@ func new(regexStr string, flags []Flag) (Regex, error) {
regexStr: regexStr,
flags: flags,
}
-
re, err := regexp.Compile(regexStr)
-
if err != nil {
return r, err
}
@@ -91,17 +87,15 @@ func (r Regex) MatchString(str string) bool {
}
// Serialize the regex.
-func (r Regex) Serialize() string {
+func (r Regex) Serialize() (string, error) {
var flags []string
for _, flag := range r.flags {
flags = append(flags, flag.String())
}
-
if !r.initialized {
- logger.FatalExit("Unable to serialize regex as not initialized properly", r)
+ return "", fmt.Errorf("Unable to serialize regex as not initialized properly: %v", r)
}
-
- return fmt.Sprintf("regex:%s %s", strings.Join(flags, ","), r.regexStr)
+ return fmt.Sprintf("regex:%s %s", strings.Join(flags, ","), r.regexStr), nil
}
// Deserialize the regex.
@@ -109,15 +103,14 @@ func Deserialize(str string) (Regex, error) {
// Get regex string
s := strings.SplitN(str, " ", 2)
if len(s) < 2 {
- logger.Debug("Using noop regex", str)
return NewNoop(), nil
}
-
flagsStr := s[0]
regexStr := s[1]
if !strings.HasPrefix(flagsStr, "regex") {
- return Regex{}, fmt.Errorf("unable to deserialize regex '%s': should start with string 'regex'", str)
+ return Regex{}, fmt.Errorf("unable to deserialize regex '%s': should start "+
+ "with string 'regex'", str)
}
// Parse regex flags, e.g. "regex:flag1,flag2,flag3..."
@@ -127,13 +120,10 @@ func Deserialize(str string) (Regex, error) {
for _, flagStr := range strings.Split(s[1], ",") {
flag, err := NewFlag(flagStr)
if err != nil {
- logger.Error("ignoring flag", err)
continue
}
- logger.Debug("Adding regex flag", flag)
flags = append(flags, flag)
}
}
-
return new(regexStr, flags)
}