Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
Close Stale Issues / close_stale_issues (push) Has been cancelled
repo-sync / repo-sync (push) Has been cancelled
auto-deploy-tencent-scf / pre-check (push) Has been cancelled
auto-deploy-tencent-scf / deploy serverless (push) Has been cancelled
39 lines
699 B
Go
39 lines
699 B
Go
package utils
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"io"
|
|
"os/exec"
|
|
)
|
|
|
|
func Run(cmd *exec.Cmd, in io.Reader) error {
|
|
cmd.Stdin = in
|
|
|
|
stdoutReader, _ := cmd.StdoutPipe()
|
|
stdoutScanner := bufio.NewScanner(stdoutReader)
|
|
go func() {
|
|
for stdoutScanner.Scan() {
|
|
fmt.Println(stdoutScanner.Text())
|
|
}
|
|
}()
|
|
stderrReader, _ := cmd.StderrPipe()
|
|
stderrScanner := bufio.NewScanner(stderrReader)
|
|
go func() {
|
|
for stderrScanner.Scan() {
|
|
fmt.Println(stderrScanner.Text())
|
|
}
|
|
}()
|
|
err := cmd.Start()
|
|
if err != nil {
|
|
return GenErrorMsg(EXEC_ERROR, err.Error())
|
|
}
|
|
|
|
// Stuck here until there are out and err
|
|
err = cmd.Wait()
|
|
if err != nil {
|
|
return GenErrorMsg(EXEC_ERROR, err.Error())
|
|
}
|
|
return nil
|
|
}
|