tree: 61201fb321e9eaa8c41ae2106c7a2248ffa7eff7 [path history] [tgz]
  1. .gitignore
  2. doc.go
  3. ioctl.go
  4. ioctl_bsd.go
  5. ioctl_linux.go
  6. LICENSE
  7. mktypes.bash
  8. OWNERS
  9. pty_darwin.go
  10. pty_freebsd.go
  11. pty_linux.go
  12. pty_unsupported.go
  13. README.google
  14. README.md
  15. run.go
  16. types.go
  17. types_freebsd.go
  18. util.go
  19. ztypes_386.go
  20. ztypes_amd64.go
  21. ztypes_arm.go
  22. ztypes_freebsd_386.go
  23. ztypes_freebsd_amd64.go
  24. ztypes_freebsd_arm.go
go/src/github.com/kr/pty/README.md

pty

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

Install

go get github.com/kr/pty

Example

package main

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

func main() {
	c := exec.Command("grep", "--color=auto", "bar")
	f, err := pty.Start(c)
	if err != nil {
		panic(err)
	}

	go func() {
		f.Write([]byte("foo\n"))
		f.Write([]byte("bar\n"))
		f.Write([]byte("baz\n"))
		f.Write([]byte{4}) // EOT
	}()
	io.Copy(os.Stdout, f)
}