buildr/internal/sh/base_command.go
Peter c8b34bc41d
Some checks failed
continuous-integration/drone/push Build is failing
feat: allow process start from plugins
2023-06-29 21:18:02 +02:00

44 lines
744 B
Go

package sh
import (
"fmt"
"io"
"os/exec"
)
type baseCommand struct {
*exec.Cmd
}
func (b *baseCommand) SetStdout(writer io.Writer) {
b.Cmd.Stdout = writer
}
func (b *baseCommand) SetStderr(writer io.Writer) {
b.Cmd.Stderr = writer
}
func (b *baseCommand) SetWorkingDir(dir string) {
b.Cmd.Dir = dir
}
func (b *baseCommand) Env() []string {
return b.Cmd.Environ()
}
func (b *baseCommand) AddEnv(vars map[string]string) {
if len(vars) == 0 {
return
}
formattedValues := make([]string, 0, len(vars))
for k, v := range vars {
formattedValues = append(formattedValues, fmt.Sprintf("%s=%s", k, v))
}
b.Cmd.Env = append(b.Cmd.Env, formattedValues...)
}
func (b *baseCommand) SetStdIn(reader io.Reader) {
b.Stdin = reader
}