in ibazel/command/notify_command.go [94:127]
func (c *notifyCommand) NotifyOfChanges() *bytes.Buffer {
b := bazelNew()
b.SetStartupArgs(c.startupArgs)
b.SetArguments(c.bazelArgs)
b.WriteToStderr(true)
b.WriteToStdout(true)
_, err := c.stdin.Write([]byte("IBAZEL_BUILD_STARTED\n"))
if err != nil {
log.Errorf("Error writing build to stdin: %s", err)
}
outputBuffer, res := b.Build(c.target)
if res != nil {
log.Errorf("IBAZEL BUILD FAILURE: %v", res)
_, err := c.stdin.Write([]byte("IBAZEL_BUILD_COMPLETED FAILURE\n"))
if err != nil {
log.Errorf("Error writing failure to stdin: %s", err)
}
} else {
log.Log("IBAZEL BUILD SUCCESS")
_, err := c.stdin.Write([]byte("IBAZEL_BUILD_COMPLETED SUCCESS\n"))
if err != nil {
log.Errorf("Error writing success to stdin: %v", err)
}
if !c.IsSubprocessRunning() {
log.Log("Restarting process...")
c.Terminate()
c.Start()
}
}
return outputBuffer
}