Files
mpbot-github/ci/mpbb.go
Zero King d18e04f4eb Debug
2018-06-20 08:29:34 +00:00

40 lines
789 B
Go

package ci
import (
"bufio"
"io"
"os"
"os/exec"
)
// mpbbToLog executes `mpbb` and saves output to a file at logFilePath.
func mpbbToLog(command, port, workDir, logFilePath string) error {
var mpbbCmd *exec.Cmd
if workDir != "" {
mpbbCmd = exec.Command("mpbb", "--work-dir", workDir, command, port)
} else {
mpbbCmd = exec.Command("mpbb", command, port)
}
logFile, err := os.Create(logFilePath)
if err != nil {
return err
}
defer logFile.Close()
logWriter := bufio.NewWriter(logFile)
debugWriter := io.MultiWriter(os.Stdout, logWriter)
// other logs in workDir/logs
mpbbCmd.Stdout = debugWriter
mpbbCmd.Stderr = debugWriter
if err = mpbbCmd.Run(); err != nil {
return err
}
err = logWriter.Flush()
if err != nil {
return err
}
return logFile.Sync()
}