Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 19 additions & 20 deletions pkg/cmd/listen.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,8 @@ func (lc *listenCmd) runListenCmd(cmd *cobra.Command, args []string) error {
return err
}

if !lc.printJSON && !lc.onlyPrintSecret && !lc.skipUpdate {
isJSONMode := strings.ToUpper(lc.format) == outputFormatJSON || lc.printJSON
if !lc.onlyPrintSecret && !lc.skipUpdate && !isJSONMode {
version.CheckLatestVersion()
}

Expand Down Expand Up @@ -229,35 +230,30 @@ func withSIGTERMCancel(ctx context.Context, onCancel func()) context.Context {

func (lc *listenCmd) createVisitor(logger *log.Logger, format string, printJSON bool) *websocket.Visitor {
var s *spinner.Spinner
isJSONMode := strings.ToUpper(format) == outputFormatJSON || printJSON

return &websocket.Visitor{
VisitError: func(ee websocket.ErrorElement) error {
ansi.StopSpinner(s, "", logger.Out)
switch ee.Error.(type) {
case proxy.FailedToPostError:
color := ansi.Color(os.Stdout)
localTime := time.Now().Format(timeLayout)

errStr := fmt.Sprintf("%s [%s] Failed to POST: %v\n",
color.Faint(localTime),
color.Red("ERROR"),
ee.Error,
)
fmt.Println(errStr)
if !isJSONMode {
color := ansi.Color(os.Stdout)
localTime := time.Now().Format(timeLayout)

errStr := fmt.Sprintf("%s [%s] Failed to POST: %v\n",
color.Faint(localTime),
color.Red("ERROR"),
ee.Error,
)
fmt.Fprint(os.Stderr, errStr)
}
// Don't exit program
return nil
case proxy.FailedToReadResponseError:
color := ansi.Color(os.Stdout)
localTime := time.Now().Format(timeLayout)

errStr := fmt.Sprintf("%s [%s] Failed to read response from endpoint, error = %v\n",
color.Faint(localTime),
color.Red("ERROR"),
ee.Error,
)
log.Errorf("%s", errStr)

if !isJSONMode {
log.Errorf("Failed to read response from endpoint: %v", ee.Error)
}
// Don't exit program
return nil
default:
Expand All @@ -266,6 +262,9 @@ func (lc *listenCmd) createVisitor(logger *log.Logger, format string, printJSON
}
},
VisitStatus: func(se websocket.StateElement) error {
if isJSONMode {
return nil
}
switch se.State {
case websocket.Loading:
s = ansi.StartNewSpinner("Getting ready...", logger.Out)
Expand Down
21 changes: 16 additions & 5 deletions pkg/cmd/logs/tail.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,10 @@ func (tailCmd *TailCmd) runTailCmd(cmd *cobra.Command, args []string) error {
return err
}

version.CheckLatestVersion()
isJSONMode := strings.ToUpper(tailCmd.format) == outputFormatJSON
if !isJSONMode {
version.CheckLatestVersion()
}

logger := log.StandardLogger()

Expand Down Expand Up @@ -263,18 +266,26 @@ func (tailCmd *TailCmd) convertArgs() error {

func createVisitor(logger *log.Logger, format string) *websocket.Visitor {
var s *spinner.Spinner
isJSONMode := strings.ToUpper(format) == outputFormatJSON

return &websocket.Visitor{
VisitError: func(ee websocket.ErrorElement) error {
ansi.StopSpinner(s, "", logger.Out)
return ee.Error
},
VisitWarning: func(we websocket.WarningElement) error {
color := ansi.Color(os.Stdout)
fmt.Printf("%s %s\n", color.Yellow("Warning"), we.Warning)
if isJSONMode {
fmt.Fprintf(os.Stderr, "Warning: %s\n", we.Warning)
} else {
color := ansi.Color(os.Stdout)
fmt.Printf("%s %s\n", color.Yellow("Warning"), we.Warning)
}
return nil
},
VisitStatus: func(se websocket.StateElement) error {
if isJSONMode {
return nil
}
switch se.State {
case websocket.Loading:
s = ansi.StartNewSpinner("Getting ready...", logger.Out)
Expand All @@ -295,8 +306,8 @@ func createVisitor(logger *log.Logger, format string) *websocket.Visitor {

sanitizePayload(&log)

if strings.ToUpper(format) == outputFormatJSON {
fmt.Println(ansi.ColorizeJSON(de.Marshaled, false, os.Stdout))
if isJSONMode {
fmt.Println(de.Marshaled)
return nil
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/parsers/parsers.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func ParsePath(httpPath string, queryRespMap map[string]gjson.Result) (string, e
newPath = append(newPath, value)
}

if len(pathParts)%2 == 0 {
if pathParts[len(pathParts)-1] != "" {
newPath = append(newPath, pathParts[len(pathParts)-1])
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/proxy/endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ func (c *EndpointClient) PostV2(evtCtx eventContext) error {
}
}

resp, err := http.DefaultClient.Do(req)
resp, err := c.cfg.HTTPClient.Do(req)
if err != nil {
c.cfg.OutCh <- websocket.ErrorElement{
Error: FailedToPostError{Err: err},
Expand Down