(opts *ViewOptions, capiClient capi.CapiClient, sessionID string)
| 368 | } |
| 369 | |
| 370 | func 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 | } |
no test coverage detected