-
Notifications
You must be signed in to change notification settings - Fork 0
/
failfast.go
34 lines (26 loc) · 809 Bytes
/
failfast.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package cmd
func CreateFailFastCmdRunner(innerCmdRunner CmdRunner) CmdRunner {
return &failFastCmdRunner{CmdRunner: innerCmdRunner}
}
type failFastCmdRunner struct {
CmdRunner
}
func (c *failFastCmdRunner) NewRunner() CmdRunner {
return CreateFailFastCmdRunner(c.CmdRunner.NewRunner())
}
func (c *failFastCmdRunner) RunInNewRunner(name string, args ...string) (string, CmdError) {
newRunner := c.NewRunner()
return newRunner.RunCmd(name, args...)
}
func (c *failFastCmdRunner) RunCmd(name string, args ...string) (string, CmdError) {
if c.HasError() {
return "", c.LastError()
}
return c.CmdRunner.RunCmd(name, args...)
}
// func (c *failFastCmdRunner) SetError(cmdError CmdError) {
// c.cmdErr = cmdError
// }
// func (c *failFastCmdRunner) LastError() CmdError {
// return c.cmdErr
// }