39 lines
784 B
Go
39 lines
784 B
Go
package v1
|
|
|
|
import (
|
|
"io"
|
|
|
|
remotev1 "code.icb4dc0.de/buildr/api/generated/remote/v1"
|
|
)
|
|
|
|
var _ io.Writer = (*taskOutputWriter)(nil)
|
|
|
|
func newTaskOutputWriter(source remotev1.TaskOutputSource, sender StreamSender[*remotev1.ExecutionServerMessage]) taskOutputWriter {
|
|
return taskOutputWriter{
|
|
source: source,
|
|
sender: sender,
|
|
}
|
|
}
|
|
|
|
type taskOutputWriter struct {
|
|
sender StreamSender[*remotev1.ExecutionServerMessage]
|
|
source remotev1.TaskOutputSource
|
|
}
|
|
|
|
func (t taskOutputWriter) Write(p []byte) (n int, err error) {
|
|
err = t.sender.Send(&remotev1.ExecutionServerMessage{
|
|
Envelope: &remotev1.ExecutionServerMessage_TaskOutput{
|
|
TaskOutput: &remotev1.TaskOutput{
|
|
Source: t.source,
|
|
Payload: p,
|
|
},
|
|
},
|
|
})
|
|
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
return len(p), nil
|
|
}
|