summaryrefslogtreecommitdiff
path: root/internal/clients
diff options
context:
space:
mode:
Diffstat (limited to 'internal/clients')
-rw-r--r--internal/clients/args.go3
-rw-r--r--internal/clients/baseclient.go6
-rw-r--r--internal/clients/catclient.go3
-rw-r--r--internal/clients/grepclient.go4
-rw-r--r--internal/clients/maprclient.go6
5 files changed, 13 insertions, 9 deletions
diff --git a/internal/clients/args.go b/internal/clients/args.go
index 1145a4b..34fcfa2 100644
--- a/internal/clients/args.go
+++ b/internal/clients/args.go
@@ -13,7 +13,8 @@ type Args struct {
UserName string
What string
Arguments []string
- Regex string
+ RegexStr string
+ RegexInvert bool
TrustAllHosts bool
Discovery string
ConnectionsPerCPU int
diff --git a/internal/clients/baseclient.go b/internal/clients/baseclient.go
index 7c6bce5..102fd7c 100644
--- a/internal/clients/baseclient.go
+++ b/internal/clients/baseclient.go
@@ -50,7 +50,11 @@ func (c *baseClient) init(maker maker) {
c.connections = append(c.connections, c.makeConnection(server, c.sshAuthMethods, c.hostKeyCallback))
}
- regex, err := regex.New(c.Args.Regex, regex.Default)
+ flag := regex.Default
+ if c.Args.RegexInvert {
+ flag = regex.Invert
+ }
+ regex, err := regex.New(c.Args.RegexStr, flag)
if err != nil {
logger.FatalExit(c.Regex, "invalid regex!", err, regex)
}
diff --git a/internal/clients/catclient.go b/internal/clients/catclient.go
index 7fd6bdc..f089e32 100644
--- a/internal/clients/catclient.go
+++ b/internal/clients/catclient.go
@@ -17,11 +17,10 @@ type CatClient struct {
// NewCatClient returns a new cat client.
func NewCatClient(args Args) (*CatClient, error) {
- if args.Regex != "" {
+ if args.RegexStr != "" {
return nil, errors.New("Can't use regex with 'cat' operating mode")
}
- args.Regex = "."
args.Mode = omode.CatClient
c := CatClient{
diff --git a/internal/clients/grepclient.go b/internal/clients/grepclient.go
index 8d11458..9f6b666 100644
--- a/internal/clients/grepclient.go
+++ b/internal/clients/grepclient.go
@@ -17,7 +17,7 @@ type GrepClient struct {
// NewGrepClient creates a new grep client.
func NewGrepClient(args Args) (*GrepClient, error) {
- if args.Regex == "" {
+ if args.RegexStr == "" {
return nil, errors.New("No regex specified, use '-regex' flag")
}
args.Mode = omode.GrepClient
@@ -41,7 +41,7 @@ func (c GrepClient) makeHandler(server string) handlers.Handler {
func (c GrepClient) makeCommands() (commands []string) {
for _, file := range strings.Split(c.What, ",") {
- commands = append(commands, fmt.Sprintf("%s %s regex %s", c.Mode.String(), file, c.Regex))
+ commands = append(commands, fmt.Sprintf("%s %s %s", c.Mode.String(), file, c.Regex.Serialize()))
}
return
}
diff --git a/internal/clients/maprclient.go b/internal/clients/maprclient.go
index c6c341b..85fa7ee 100644
--- a/internal/clients/maprclient.go
+++ b/internal/clients/maprclient.go
@@ -79,11 +79,11 @@ func NewMaprClient(args Args, queryStr string, maprClientMode MaprClientMode) (*
switch c.query.Table {
case "", ".":
- c.Regex = "."
+ c.RegexStr = "."
case "*":
- c.Regex = fmt.Sprintf("\\|MAPREDUCE:\\|")
+ c.RegexStr = fmt.Sprintf("\\|MAPREDUCE:\\|")
default:
- c.Regex = fmt.Sprintf("\\|MAPREDUCE:%s\\|", c.query.Table)
+ c.RegexStr = fmt.Sprintf("\\|MAPREDUCE:%s\\|", c.query.Table)
}
c.globalGroup = mapr.NewGlobalGroupSet()