MCPcopy Index your code
hub / github.com/devspace-sh/devspace / StartStream

Function StartStream

pkg/devspace/services/sync/controller.go:630–663  ·  view source on GitHub ↗
(ctx context.Context, client kubectl.Client, pod *v1.Pod, container string, command []string, reader io.Reader, stdoutWriter io.Writer, buffer bool, log logpkg.Logger)

Source from the content-addressed store, hash-verified

628}
629
630func StartStream(ctx context.Context, client kubectl.Client, pod *v1.Pod, container string, command []string, reader io.Reader, stdoutWriter io.Writer, buffer bool, log logpkg.Logger) error {
631 stderrBuffer := &bytes.Buffer{}
632 stderrReader, stderrWriter := io.Pipe()
633 defer stderrWriter.Close()
634
635 go func() {
636 defer stderrReader.Close()
637 s := scanner.NewScanner(stderrReader)
638 for s.Scan() {
639 log.Debug("Helper - " + s.Text())
640 }
641 if s.Err() != nil && s.Err() != context.Canceled {
642 log.Warnf("Helper - Error streaming logs: %v", s.Err())
643 }
644 }()
645
646 var stdErr io.Writer = stderrWriter
647 if buffer {
648 stdErr = io.MultiWriter(stderrBuffer, stderrWriter)
649 }
650
651 err := client.ExecStream(ctx, &kubectl.ExecStreamOptions{
652 Pod: pod,
653 Container: container,
654 Command: command,
655 Stdin: reader,
656 Stdout: stdoutWriter,
657 Stderr: stdErr,
658 })
659 if err != nil {
660 return fmt.Errorf("%s %v", stderrBuffer.String(), err)
661 }
662 return nil
663}

Callers 2

initClientMethod · 0.85

Calls 8

StringMethod · 0.95
NewScannerFunction · 0.92
CloseMethod · 0.65
ExecStreamMethod · 0.65
DebugMethod · 0.45
ErrMethod · 0.45
WarnfMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected