You've already forked mpbot-github
mirror of
https://github.com/macports/mpbot-github.git
synced 2026-03-31 14:46:03 -07:00
40 lines
789 B
Go
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()
|
|
}
|