Files
yatm/tools/command.go
Samuel N Cui f87ec06af6 feat: useable
2022-12-12 22:48:28 +08:00

26 lines
439 B
Go

package tools
import (
"context"
"io"
"os/exec"
)
func RunCommand(ctx context.Context, name string, args []string, stdin io.Reader, stdout, stderr io.Writer) (<-chan error, error) {
cmd := exec.CommandContext(ctx, name, args...)
cmd.Stdin = stdin
cmd.Stdout = stdout
cmd.Stderr = stderr
if err := cmd.Start(); err != nil {
return nil, err
}
ch := make(chan error, 1)
go func() {
ch <- cmd.Wait()
}()
return ch, nil
}