diff --git a/main/commands/all/api/shared.go b/main/commands/all/api/shared.go index 71ae6247..88902d3c 100644 --- a/main/commands/all/api/shared.go +++ b/main/commands/all/api/shared.go @@ -104,16 +104,30 @@ func fetchHTTPContent(target string) ([]byte, error) { } func showResponese(m proto.Message) { + if isNil(m) { + return + } + b := new(bytes.Buffer) + e := json.NewEncoder(b) + e.SetIndent("", " ") + e.SetEscapeHTML(false) + err := e.Encode(m) msg := "" - bs, err := proto.Marshal(m) if err != nil { - msg = err.Error() + msg = fmt.Sprintf("error: %s\n\n%v", err, m) } else { - msg = string(bs) - msg = strings.TrimSpace(msg) + msg = strings.TrimSpace(b.String()) } if msg == "" { return } fmt.Println(msg) } + +func isNil(i interface{}) bool { + vi := reflect.ValueOf(i) + if vi.Kind() == reflect.Ptr { + return vi.IsNil() + } + return i == nil +}