func()

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
}