package command import ( "github.com/SAP/jenkins-library/pkg/log" "os/exec" "sync" ) // errCopyStdout and errCopyStderr are filled after the command execution after Wait() terminates type execution struct { cmd *exec.Cmd wg sync.WaitGroup errCopyStdout error errCopyStderr error ul *log.URLLogger } func (execution *execution) Kill() error { return execution.cmd.Process.Kill() } func (execution *execution) Wait() error { execution.wg.Wait() execution.ul.WriteURLsLogToJSON() return execution.cmd.Wait() } // Execution references a background process which is started by RunExecutableInBackground type Execution interface { Kill() error Wait() error }