Name Last Update
..
.gitignore Loading commit data...
License Loading commit data...
README.md Loading commit data...
doc.go Loading commit data...
ioctl.go Loading commit data...
ioctl_bsd.go Loading commit data...
mktypes.bash Loading commit data...
pty_darwin.go Loading commit data...
pty_freebsd.go Loading commit data...
pty_linux.go Loading commit data...
pty_unsupported.go Loading commit data...
run.go Loading commit data...
types.go Loading commit data...
types_freebsd.go Loading commit data...
util.go Loading commit data...
ztypes_386.go Loading commit data...
ztypes_amd64.go Loading commit data...
ztypes_arm.go Loading commit data...
ztypes_arm64.go Loading commit data...
ztypes_freebsd_386.go Loading commit data...
ztypes_freebsd_amd64.go Loading commit data...
ztypes_freebsd_arm.go Loading commit data...
ztypes_ppc64.go Loading commit data...
ztypes_ppc64le.go Loading commit data...
ztypes_s390x.go Loading commit data...

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)
}