mirror of
https://github.com/samuelncui/yatm.git
synced 2026-01-08 06:15:54 +00:00
26 lines
439 B
Go
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
|
|
}
|