diff --git a/exec/exec.go b/exec/exec.go index 5cd7d04..973ca4b 100644 --- a/exec/exec.go +++ b/exec/exec.go @@ -84,6 +84,7 @@ func (r *Runner) Run(name string, stdout io.Writer, stdin io.Reader, args ...str } else { cmd = exec.Command(entry.Path, fullArgs...) } + applyOSSpecificCmdOpts(cmd) var stderr bytes.Buffer if stdin != nil { diff --git a/exec/exec_all.go b/exec/exec_all.go new file mode 100644 index 0000000..be9b4d4 --- /dev/null +++ b/exec/exec_all.go @@ -0,0 +1,7 @@ +//go:build !windows + +package exec + +import "os/exec" + +func applyOSSpecificCmdOpts(cmd *exec.Cmd) {} diff --git a/exec/exec_windows.go b/exec/exec_windows.go new file mode 100644 index 0000000..a4aaa52 --- /dev/null +++ b/exec/exec_windows.go @@ -0,0 +1,12 @@ +//go:build windows + +package exec + +import ( + "os/exec" + "syscall" +) + +func applyOSSpecificCmdOpts(cmd *exec.Cmd) { + cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} +}