diff --git a/rsload.go b/rsload.go index c723175..8f615ed 100644 --- a/rsload.go +++ b/rsload.go @@ -48,6 +48,15 @@ func main() { if options.password != "" { fmt.Fprintf(conn, "*2\r\n$4\r\nauth\r\n$%d\r\n%s\r\n", len(options.password), options.password) + v, err := readValue(conn) + if err != nil { + fmt.Printf("unable to auth: %v\n", err) + os.Exit(1) + } + if !isOK(v) { + fmt.Printf("not OK: %v\n", v) + os.Exit(1) + } } infile, err := os.Open(fname) diff --git a/values.go b/values.go index 4694880..f74ed8c 100644 --- a/values.go +++ b/values.go @@ -19,6 +19,14 @@ type value interface { Write(io.Writer) (int, error) } +func isOK(v value) bool { + vv, ok := v.(String) + if !ok { + return false + } + return vv == "OK" +} + func streamValues(r io.Reader, c chan value, e chan error) { defer close(c) defer close(e)