()
| 50 | } |
| 51 | |
| 52 | func (c cmdWithStderr) Run() error { |
| 53 | if isVerbose, _ := utils.IsDebugEnabled(); isVerbose { |
| 54 | _ = printArgs(os.Stderr, c.Cmd.Args) |
| 55 | } |
| 56 | if c.Cmd.Stderr != nil { |
| 57 | return c.Cmd.Run() |
| 58 | } |
| 59 | errStream := &bytes.Buffer{} |
| 60 | c.Cmd.Stderr = errStream |
| 61 | err := c.Cmd.Run() |
| 62 | if err != nil { |
| 63 | err = &CmdError{ |
| 64 | Args: c.Cmd.Args, |
| 65 | Err: err, |
| 66 | Stderr: errStream, |
| 67 | } |
| 68 | } |
| 69 | return err |
| 70 | } |
| 71 | |
| 72 | // CmdError provides more visibility into why an exec.Cmd had failed |
| 73 | type CmdError struct { |
nothing calls this directly
no test coverage detected