k3s/vendor/github.com/benmoss/go-powershell/backend/local.go
Brad Davidson 1de58904ad Update flannel to v0.12.0-k3s1
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
2020-07-20 13:18:46 -07:00

39 lines
949 B
Go

// Copyright (c) 2017 Gorillalabs. All rights reserved.
package backend
import (
"io"
"os/exec"
"github.com/pkg/errors"
)
type Local struct{}
func (b *Local) StartProcess(cmd string, args ...string) (Waiter, io.Writer, io.Reader, io.Reader, error) {
command := exec.Command(cmd, args...)
stdin, err := command.StdinPipe()
if err != nil {
return nil, nil, nil, nil, errors.Wrap(err, "Could not get hold of the PowerShell's stdin stream")
}
stdout, err := command.StdoutPipe()
if err != nil {
return nil, nil, nil, nil, errors.Wrap(err, "Could not get hold of the PowerShell's stdout stream")
}
stderr, err := command.StderrPipe()
if err != nil {
return nil, nil, nil, nil, errors.Wrap(err, "Could not get hold of the PowerShell's stderr stream")
}
err = command.Start()
if err != nil {
return nil, nil, nil, nil, errors.Wrap(err, "Could not spawn PowerShell process")
}
return command, stdin, stdout, stderr, nil
}