From 7170e6ad68f4a04702471104c13ae42fd2037d24 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 5 Feb 2021 09:02:14 +0000 Subject: add --max, --before, --after switches to dtail and dgrep commands --- internal/clients/baseclient.go | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'internal/clients/baseclient.go') diff --git a/internal/clients/baseclient.go b/internal/clients/baseclient.go index f20156f..0bdd62e 100644 --- a/internal/clients/baseclient.go +++ b/internal/clients/baseclient.go @@ -2,6 +2,8 @@ package clients import ( "context" + "fmt" + "strings" "sync" "time" @@ -118,10 +120,44 @@ func (c *baseClient) start(ctx context.Context, active chan struct{}, i int, con } } +func (c *baseClient) makeCommandOptions() map[string]string { + options := make(map[string]string) + + if c.Args.Quiet { + options["quiet"] = fmt.Sprintf("%v", c.Args.Quiet) + } + if c.Args.LineContext.MaxCount != 0 { + options["max"] = fmt.Sprintf("%d", c.Args.LineContext.MaxCount) + } + if c.Args.LineContext.BeforeContext != 0 { + options["before"] = fmt.Sprintf("%d", c.Args.LineContext.BeforeContext) + } + if c.Args.LineContext.AfterContext != 0 { + options["after"] = fmt.Sprintf("%d", c.Args.LineContext.AfterContext) + } + + return options +} + +func (c *baseClient) commandOptionsToString(options map[string]string) string { + var sb strings.Builder + + count := 0 + for k, v := range options { + if count > 0 { + sb.WriteString(":") + } + sb.WriteString(fmt.Sprintf("%s=%s", k, v)) + count++ + } + + return sb.String() +} + func (c *baseClient) makeConnection(server string, sshAuthMethods []gossh.AuthMethod, hostKeyCallback client.HostKeyCallback) *remote.Connection { conn := remote.NewConnection(server, c.UserName, sshAuthMethods, hostKeyCallback) conn.Handler = c.maker.makeHandler(server) - conn.Commands = c.maker.makeCommands() + conn.Commands = c.maker.makeCommands(c.makeCommandOptions()) return conn } -- cgit v1.2.3 From 6797020f0ea315cd909a26aef52d148e9a48ab22 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 5 Feb 2021 09:32:52 +0000 Subject: refactor --- internal/clients/baseclient.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'internal/clients/baseclient.go') diff --git a/internal/clients/baseclient.go b/internal/clients/baseclient.go index 0bdd62e..f83fcfd 100644 --- a/internal/clients/baseclient.go +++ b/internal/clients/baseclient.go @@ -126,14 +126,14 @@ func (c *baseClient) makeCommandOptions() map[string]string { if c.Args.Quiet { options["quiet"] = fmt.Sprintf("%v", c.Args.Quiet) } - if c.Args.LineContext.MaxCount != 0 { - options["max"] = fmt.Sprintf("%d", c.Args.LineContext.MaxCount) + if c.Args.LContext.MaxCount != 0 { + options["max"] = fmt.Sprintf("%d", c.Args.LContext.MaxCount) } - if c.Args.LineContext.BeforeContext != 0 { - options["before"] = fmt.Sprintf("%d", c.Args.LineContext.BeforeContext) + if c.Args.LContext.BeforeContext != 0 { + options["before"] = fmt.Sprintf("%d", c.Args.LContext.BeforeContext) } - if c.Args.LineContext.AfterContext != 0 { - options["after"] = fmt.Sprintf("%d", c.Args.LineContext.AfterContext) + if c.Args.LContext.AfterContext != 0 { + options["after"] = fmt.Sprintf("%d", c.Args.LContext.AfterContext) } return options -- cgit v1.2.3