Clive, 2nd ed. User's manual. Section 2
SYNOPSYS

import "clive/cmd/run"

func Cmd(args ...string) (*Proc, error)
func CtxCmd(adjust func(*cmd.Ctx), args ...string) (*Proc, error)
func PipeTo(args ...string) (*Proc, error)
func PipeToCtx(adjust func(*cmd.Ctx), args ...string) (*Proc, error)
func PipeToUnix(args ...string) (*Proc, error)
func UnixCmd(args ...string) (*Proc, error)
type Proc struct { ... }
    func Cmd(args ...string) (*Proc, error)
    func CtxCmd(adjust func(*cmd.Ctx), args ...string) (*Proc, error)
    func PipeTo(args ...string) (*Proc, error)
    func PipeToCtx(adjust func(*cmd.Ctx), args ...string) (*Proc, error)
    func PipeToUnix(args ...string) (*Proc, error)
    func UnixCmd(args ...string) (*Proc, error)

DESCRIPTION

run a command and use channels for I/O

CONSTANTS

TYPES

type Proc struct {
	Id   int
	Args []string
	In   chan<- interface{} // process input
	Out  <-chan interface{} // process output
	Err  <-chan interface{} // process errors
	// contains filtered or unexported fields
}
    A running command. Out and Err correspond to the "out" and "err" channels.
    The status is reported by closing the Err channel using it. You can use
    ch.Merge() to merge Out and Err into a single stream.

func Cmd(args ...string) (*Proc, error)
    Run args as a Clive command and return it. The command runs in a new clive
    cmd context with:

    "in" set to null
    "out" set to a new Proc.Out chan
    "err" set to a new Proc.Err chan

func CtxCmd(adjust func(*cmd.Ctx), args ...string) (*Proc, error)
    Run args as a clive command with a context adjusted by the caller, and
    return it. The command runs in a new clive cmd context with:

    "in" set to null
    "out" set to a new Proc.Out chan
    "err" set to a new Proc.Err chan

    Adjust is called in that context before actually starting the command, to
    let it adjust the context at will, but in, out, and err are set as said no
    matter what adjust does.

func PipeTo(args ...string) (*Proc, error)
    Run args as a clive command with an open input channel. The command runs in
    a new clive cmd context with

    "in" set to a new Proc.In chan
    "out" set to a new Proc.Out chan
    "err" set to a new Proc.Err chan

func PipeToCtx(adjust func(*cmd.Ctx), args ...string) (*Proc, error)
    Run args as a clive command with a context adjusted by the caller and an
    open input channel, and return it. The command runs in a new clive cmd
    context with:

    "in" set to a new Proc.In chan
    "out" set to a new Proc.Out chan
    "err" set to a new Proc.Err chan

    Adjust is called in that context before actually starting the command, to
    let it adjust the context at will, but in, out, and err are set as said no
    matter what adjust does.

func PipeToUnix(args ...string) (*Proc, error)
    Run args as a unix command with an open input channel. The command runs in a
    new clive cmd context with

    "in" set to a new Proc.In chan
    "out" set to a new Proc.Out chan
    "err" set to a new Proc.Err chan

func UnixCmd(args ...string) (*Proc, error)
    Run args as a Unix command and return it. The command runs in a new clive
    cmd context with

    "in" set to null
    "out" set to a new Proc.Out chan
    "err" set to a new Proc.Err chan

func (p *Proc) Wait() error
    Wait for the command to terminate and return its status.

FUNCTIONS

User's manual, 2nd ed. Section 2