1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package main import ( "io" "log" "os" "os/exec" "github.com/kr/pty" ) func main() { cmd := exec.Command("snappy", "login", "potato") f, err := pty.Start(cmd) if err != nil { log.Fatal(err) } buf := make([]byte, 80) if n, err := f.Read(buf); err != nil { log.Fatal(err) } else { buf = buf[:n] } if string(buf) != "Password: " { log.Fatalf("got unexpected prompt: %q", string(buf)) } if _, err := f.Write([]byte("swordfish\n")); err != nil { log.Fatal(err) } io.Copy(os.Stdout, f) } |