Documentation
¶
Overview ¶
Package exec provides an injectable interface and implementations for running commands.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cmd ¶
type Cmd interface {
// CombinedOutput runs the command and returns its combined standard output
// and standard error. This follows the pattern of package os/exec.
CombinedOutput() ([]byte, error)
SetDir(dir string)
}
Cmd is an interface that presents an API that is very similar to Cmd from os/exec. As more functionality is needed, this can grow. Since Cmd is a struct, we will have to replace fields with get/set method pairs.
func InitFakeCmd ¶ added in v0.5.1
func InitFakeCmd(fake *FakeCmd, cmd string, args ...string) Cmd
type ExitError ¶
type ExitError interface {
String() string
Error() string
Exited() bool
ExitStatus() int
}
ExitError is an interface that presents an API similar to os.ProcessState, which is what ExitError from os/exec is. This is designed to make testing a bit easier and probably loses some of the cross-platform properties of the underlying library.
type FakeCmd ¶ added in v0.5.1
type FakeCmd struct {
Argv []string
CombinedOutputScript []FakeCombinedOutputAction
CombinedOutputCalls int
CombinedOutputLog [][]string
Dirs []string
}
A simple scripted Cmd type.
func (*FakeCmd) CombinedOutput ¶ added in v0.5.1
func (fake *FakeCmd) CombinedOutput() ([]byte, error)
type FakeCombinedOutputAction ¶ added in v0.5.1
type FakeCombinedOutputAction func() ([]byte, error)
type FakeCommandAction ¶ added in v0.5.1
type FakeCommandAction func(cmd string, args ...string) Cmd
type FakeExec ¶ added in v0.5.1
type FakeExec struct {
CommandScript []FakeCommandAction
CommandCalls int
}
A simple scripted Interface type.
type FakeExitError ¶ added in v0.5.1
type FakeExitError struct {
Status int
}
A simple fake ExitError type.
func (*FakeExitError) ExitStatus ¶ added in v0.5.1
func (fake *FakeExitError) ExitStatus() int
type Interface ¶
type Interface interface {
// Command returns a Cmd instance which can be used to run a single command.
// This follows the pattern of package os/exec.
Command(cmd string, args ...string) Cmd
}
Interface is an interface that presents a subset of the os/exec API. Use this when you want to inject fakeable/mockable exec behavior.