summaryrefslogtreecommitdiff
path: root/internal/clients/baseclient.go
diff options
context:
space:
mode:
authorPaul Buetow <pbuetow@mimecast.com>2020-09-04 14:07:51 +0300
committerPaul Buetow <pbuetow@mimecast.com>2020-09-04 14:07:51 +0300
commit26ba76807853ec7d98b6190a72f4031f3cd80bed (patch)
tree7a8c8fec1cc515e5585c08029786b525cacf879a /internal/clients/baseclient.go
parent2bb621846f784d8ef66a4ffa1a6412e996d7b615 (diff)
add more unit tests and deserializer/serializer to regex
Diffstat (limited to 'internal/clients/baseclient.go')
-rw-r--r--internal/clients/baseclient.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/internal/clients/baseclient.go b/internal/clients/baseclient.go
index 1c75205..7c6bce5 100644
--- a/internal/clients/baseclient.go
+++ b/internal/clients/baseclient.go
@@ -2,7 +2,6 @@ package clients
import (
"context"
- "regexp"
"sync"
"time"
@@ -10,6 +9,7 @@ import (
"github.com/mimecast/dtail/internal/discovery"
"github.com/mimecast/dtail/internal/io/logger"
"github.com/mimecast/dtail/internal/omode"
+ "github.com/mimecast/dtail/internal/regex"
"github.com/mimecast/dtail/internal/ssh/client"
gossh "golang.org/x/crypto/ssh"
@@ -34,6 +34,8 @@ type baseClient struct {
retry bool
// Connection maker helper.
maker maker
+ // Regex is the regular expresion object for line filtering
+ Regex regex.Regex
}
func (c *baseClient) init(maker maker) {
@@ -48,9 +50,11 @@ func (c *baseClient) init(maker maker) {
c.connections = append(c.connections, c.makeConnection(server, c.sshAuthMethods, c.hostKeyCallback))
}
- if _, err := regexp.Compile(c.Regex); err != nil {
- logger.FatalExit(c.Regex, "Can't test compile regex", err)
+ regex, err := regex.New(c.Args.Regex, regex.Default)
+ if err != nil {
+ logger.FatalExit(c.Regex, "invalid regex!", err, regex)
}
+ c.Regex = regex
c.stats = newTailStats(len(c.connections))
}