Documentation
¶
Index ¶
- type IO
- func (h *IO) Err() io.Writer
- func (h *IO) Exit(code int, a ...interface{})
- func (h *IO) ExitOnErr(err error, msg string, code int)
- func (h *IO) ExitOnErrShort(err error, msg string, code int)
- func (h *IO) ExitOnErrsShort(errs []error, code int)
- func (h *IO) Exitf(code int, format string, a ...interface{})
- func (h *IO) In() io.Reader
- func (h *IO) OnSignal(s os.Signal, f func(os.Signal)) (cancel func())
- func (h *IO) Out() io.Writer
- func (h *IO) SetErr(w io.Writer)
- func (h *IO) SetIn(r io.Reader)
- func (h *IO) SetOut(w io.Writer)
- type Mixin
- type PostRun
- type PreRun
- type Responder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IO ¶
type IO struct {
// contains filtered or unexported fields
}
IO can be embedded in all mixins and sub-command handlers and provide a default implementation of the Responder interface.
func (*IO) ExitOnErrsShort ¶
type PostRun ¶
PostRun is optionally implemented by handlers/mixins to perform tasks after Handler.Run finishes.
type PreRun ¶
PreRun is optionally implemented by handlers/mixins to perform tasks after flags are parsed but before Handler.Run.
If it returns an error, Handler.Run and Handler.PostRun do not execute.
type Responder ¶
type Responder interface {
// Err returns the standard error destination.
Err() io.Writer
// In returns the standard input source.
In() io.Reader
// OnSignal starts a goroutine which runs the provided function every time the signal
// is received. It returns a function to end the goroutine.
OnSignal(s os.Signal, do func(os.Signal)) (cancel func())
// Out returns the standard output destination.
Out() io.Writer
// SetErr assigns the standard error destination.
SetErr(io.Writer)
// SetIn assigns the standard input source.
SetIn(io.Reader)
// SetOut assigns the standard error destination.
SetOut(io.Writer)
}
Responder defines the common response behavior expected from each sub-command implementation.
Behaviors related to terminal I/O are based on the approached used in docker itself (e.g. ClI interface): https://github.com/docker/cli/blob/f1b116179f2a95d0ea45780dfb8be51c2825b9c0/cli/command/cli.go. Specifically, Out and Err methods are intended to improve testability by expecting that terminal messages can be captured for assertions about their content (as they are in docker's own CLI tests).