in internal/kubelib/logs.go [205:240]
func (f *logsFollower) followPodLog(ctx context.Context, podLog podLog) error {
if _, err := fmt.Fprintf(f.out, "Following logs of %s/%s...\n", podLog.target.Namespace, podLog.target.Name); err != nil {
return err
}
logsStream, err := podLog.request.Stream(ctx)
if err != nil {
return err
}
defer func() {
_ = logsStream.Close()
}()
r := bufio.NewReader(logsStream)
out := f.out
if f.addPrefix {
out = &prefixWriter{
prefix: []byte(fmt.Sprintf("[%s/%s] ", podLog.target.Namespace, podLog.target.Name)),
w: out,
}
}
for {
line, err := r.ReadBytes('\n')
if _, writeErr := out.Write(line); writeErr != nil {
return writeErr
}
if err != nil {
if err == io.EOF {
return nil
}
return err
}
}
}