github.com/ppphp/yayagf@v0.0.1/internal/command/command.go (about) 1 package command 2 3 import ( 4 "bytes" 5 "io" 6 "os/exec" 7 ) 8 9 func GoCommand(bin string, args []string, out io.Writer, err io.Writer) *exec.Cmd { 10 cmd := exec.Command(bin, args...) 11 cmd.Stdout = out 12 cmd.Stderr = err 13 14 start := make(chan struct{}) 15 go func() { 16 close(start) 17 _ = cmd.Run() 18 }() 19 <-start 20 21 return cmd 22 } 23 24 func DoCommand(bin string, args ...string) (error, string, string) { 25 out, errs := &bytes.Buffer{}, &bytes.Buffer{} 26 cmd := exec.Command(bin, args...) 27 cmd.Stdout = out 28 cmd.Stderr = errs 29 if err := cmd.Run(); err != nil { 30 return err, out.String(), errs.String() 31 } 32 return nil, out.String(), errs.String() 33 }