(app *App)
| 11 | ) |
| 12 | |
| 13 | func newLogsCmd(app *App) *cobra.Command { |
| 14 | var ( |
| 15 | selector *CodespaceSelector |
| 16 | follow bool |
| 17 | ) |
| 18 | |
| 19 | logsCmd := &cobra.Command{ |
| 20 | Use: "logs", |
| 21 | Short: "Access codespace logs", |
| 22 | Args: noArgsConstraint, |
| 23 | RunE: func(cmd *cobra.Command, args []string) error { |
| 24 | return app.Logs(cmd.Context(), selector, follow) |
| 25 | }, |
| 26 | } |
| 27 | |
| 28 | selector = AddCodespaceSelector(logsCmd, app.apiClient) |
| 29 | |
| 30 | logsCmd.Flags().BoolVarP(&follow, "follow", "f", false, "Tail and follow the logs") |
| 31 | |
| 32 | return logsCmd |
| 33 | } |
| 34 | |
| 35 | func (a *App) Logs(ctx context.Context, selector *CodespaceSelector, follow bool) (err error) { |
| 36 | // Ensure all child tasks (port forwarding, remote exec) terminate before return. |
no test coverage detected