2021-09-16 15:38:43 +02:00
|
|
|
//go:build !windows
|
2018-10-27 14:35:07 +02:00
|
|
|
// +build !windows
|
|
|
|
|
2020-09-29 11:10:57 +02:00
|
|
|
package oscommands
|
2018-10-27 14:35:07 +02:00
|
|
|
|
|
|
|
import (
|
2021-10-24 01:43:48 +02:00
|
|
|
"os/exec"
|
2019-02-16 01:18:38 +02:00
|
|
|
|
2020-03-25 11:37:10 +02:00
|
|
|
"github.com/creack/pty"
|
2018-10-27 14:35:07 +02:00
|
|
|
)
|
|
|
|
|
2022-01-02 01:34:33 +02:00
|
|
|
// we define this separately for windows and non-windows given that windows does
|
|
|
|
// not have great PTY support and we need a PTY to handle a credential request
|
2022-01-09 00:52:43 +02:00
|
|
|
func (self *cmdObjRunner) getCmdHandler(cmd *exec.Cmd) (*cmdHandler, error) {
|
|
|
|
ptmx, err := pty.Start(cmd)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2021-10-24 01:43:48 +02:00
|
|
|
|
2022-01-09 00:52:43 +02:00
|
|
|
return &cmdHandler{
|
|
|
|
stdoutPipe: ptmx,
|
|
|
|
stdinPipe: ptmx,
|
|
|
|
close: ptmx.Close,
|
|
|
|
}, nil
|
2018-11-06 21:24:10 +02:00
|
|
|
}
|