code: func (r *reader) read() error {
  	n, err := r.r.Read(r.b)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	if n < 1 {
  		return trace.Errorf("unexpected error, read 0 bytes")
  	}
  
  	switch r.b[0] {
  	case OKByte:
  		return nil
  	case WarnByte, ErrByte:
  		r.s.Scan()
  		if err := r.s.Err(); err != nil {
  			return trace.Wrap(err)
  		}
  		return trace.Errorf(r.s.Text())
  	}
  	return trace.Errorf("unrecognized command: %#v", r.b)
  }
docs: // read is used to "ask" for response messages after each SCP transmission
  // it only reads text data until a newline and returns 'nil' for "OK" responses
  // and errors for everything else