mirror of https://github.com/databricks/cli.git
43 lines
706 B
Go
43 lines
706 B
Go
package python
|
|
|
|
import (
|
|
"bufio"
|
|
"bytes"
|
|
"context"
|
|
"io"
|
|
|
|
"github.com/databricks/cli/libs/log"
|
|
)
|
|
|
|
type logWriter struct {
|
|
ctx context.Context
|
|
prefix string
|
|
buf bytes.Buffer
|
|
}
|
|
|
|
// newLogWriter creates a new io.Writer that writes to log with specified prefix.
|
|
func newLogWriter(ctx context.Context, prefix string) io.Writer {
|
|
return &logWriter{
|
|
ctx: ctx,
|
|
prefix: prefix,
|
|
}
|
|
}
|
|
|
|
func (p *logWriter) Write(bytes []byte) (n int, err error) {
|
|
p.buf.Write(bytes)
|
|
|
|
scanner := bufio.NewScanner(&p.buf)
|
|
|
|
for scanner.Scan() {
|
|
line := scanner.Text()
|
|
|
|
log.Debugf(p.ctx, "%s%s", p.prefix, line)
|
|
}
|
|
|
|
remaining := p.buf.Bytes()
|
|
p.buf.Reset()
|
|
p.buf.Write(remaining)
|
|
|
|
return len(bytes), nil
|
|
}
|