(name string, arg ...string)
| 159 | } |
| 160 | |
| 161 | func run(name string, arg ...string) (*exec.Cmd, chan int, error) { |
| 162 | cmd := exec.Command(name, arg...) |
| 163 | cmd.Stderr = os.Stderr |
| 164 | cmd.Stdin = os.Stdin |
| 165 | cmd.Stdout = os.Stdout |
| 166 | |
| 167 | // Start process |
| 168 | if err := cmd.Start(); err != nil { |
| 169 | return nil, nil, err |
| 170 | } |
| 171 | |
| 172 | // Forward signals |
| 173 | exitCh := make(chan int) |
| 174 | go signalHandler(cmd, exitCh) |
| 175 | |
| 176 | return cmd, exitCh, nil |
| 177 | } |
| 178 | |
| 179 | func getExitStatus(cmd *exec.Cmd) int { |
| 180 | if cmd.ProcessState != nil { |
no test coverage detected