MCPcopy
hub / github.com/cli/cli / printLogs

Function printLogs

pkg/cmd/agent-task/view/view.go:370–405  ·  view source on GitHub ↗
(opts *ViewOptions, capiClient capi.CapiClient, sessionID string)

Source from the content-addressed store, hash-verified

368}
369
370func printLogs(opts *ViewOptions, capiClient capi.CapiClient, sessionID string) error {
371 ctx := context.Background()
372
373 renderer := opts.LogRenderer()
374
375 if err := opts.IO.StartPager(); err == nil {
376 defer opts.IO.StopPager()
377 } else {
378 fmt.Fprintf(opts.IO.ErrOut, "error starting pager: %v\n", err)
379 }
380
381 if opts.Follow {
382 var called bool
383 fetcher := func() ([]byte, error) {
384 if called {
385 opts.Sleep(defaultLogPollInterval)
386 }
387 called = true
388 raw, err := capiClient.GetSessionLogs(ctx, sessionID)
389 if err != nil {
390 return nil, err
391 }
392 return raw, nil
393 }
394
395 return renderer.Follow(fetcher, opts.IO.Out, opts.IO)
396 }
397
398 raw, err := capiClient.GetSessionLogs(ctx, sessionID)
399 if err != nil {
400 return fmt.Errorf("failed to fetch session logs: %w", err)
401 }
402
403 _, err = renderer.Render(raw, opts.IO.Out, opts.IO)
404 return err
405}

Callers 1

viewRunFunction · 0.85

Calls 6

StartPagerMethod · 0.80
StopPagerMethod · 0.80
GetSessionLogsMethod · 0.65
FollowMethod · 0.65
ErrorfMethod · 0.65
RenderMethod · 0.65

Tested by

no test coverage detected