Some changes to make the code compile with GO version 1.0.1. However, there would be also be some changes in functionality. This is due to changes in the type of cmd.Stdin and cmd.Stdout, and their inability to write as well read. The example given in readme.md doesn't work. I'm figuring out a way to make changes in the example so that it works.
2 files changed
tree: 5494d2bb462aea177fa624f26a3f6f80a7b1f099
  1. .gitignore
  2. License
  3. Makefile
  4. pty_linux.go
  5. README.md
  6. run.go
README.md

pty

Pty is a Go package for using unix pseudo-terminals.

(Note, there is only a Linux implementation. I'd appreciate a patch for other systems!)

Install

goinstall github.com/kr/pty

Example

package main

import (
    "fmt"
    "github.com/kr/pty"
    "io"
    "os"
)


func main() {
    c, err := pty.Run(
        "/bin/grep",
        []string{"grep", "--color=auto", "bar"},
        nil,
        "",
    )
    if err != nil {
        panic(err)
    }

    go func() {
        fmt.Fprintln(c.Stdin, "foo")
        fmt.Fprintln(c.Stdin, "bar")
        fmt.Fprintln(c.Stdin, "baz")
        c.Stdin.Close()
    }()
    io.Copy(os.Stdout, c.Stdout)
    c.Wait(0)
}