diff options
Diffstat (limited to 'internal/clients')
| -rw-r--r-- | internal/clients/args.go | 3 | ||||
| -rw-r--r-- | internal/clients/baseclient.go | 6 | ||||
| -rw-r--r-- | internal/clients/catclient.go | 3 | ||||
| -rw-r--r-- | internal/clients/grepclient.go | 4 | ||||
| -rw-r--r-- | internal/clients/maprclient.go | 6 |
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() |
