"os/exec"
)
-type cmdRunner struct {
+type CommandRunner struct {
exe string
args []string
cmd *exec.Cmd
}
-func (r *cmdRunner) run(result chan error) {
+func (r *CommandRunner) Run(result chan error) {
r.cmd = exec.Command(r.exe, r.args...)
r.cmd.Stdout = os.Stdout
r.cmd.Stderr = os.Stderr
}()
}
-func (r *cmdRunner) kill() error {
- return r.cmd.Process.Kill()
+func (r *CommandRunner) Kill() error {
+ if r.cmd != nil {
+ return r.cmd.Process.Kill()
+ }
+ return nil
}
-func makeRunner(exe string, arg ...string) cmdRunner {
- r := cmdRunner{exe: exe, args: arg}
+func NewCommandRunner(exe string, arg ...string) *CommandRunner {
+ r := &CommandRunner{exe: exe, args: arg}
return r
}