MCPcopy Create free account
hub / github.com/Thunder-Compute/thunder-cli / trySkipTemplate

Method trySkipTemplate

tui/create.go:292–336  ·  view source on GitHub ↗

trySkipTemplate handles the template step, which depends on async-loaded data.

()

Source from the content-addressed store, hash-verified

290
291// trySkipTemplate handles the template step, which depends on async-loaded data.
292func (m *createModel) trySkipTemplate() tea.Cmd {
293 if m.presets == nil || m.presets.Template == nil {
294 m.initStep()
295 return nil
296 }
297
298 if !m.templatesLoaded || !m.snapshotsLoaded {
299 // Data not loaded yet — show spinner, re-attempt when data arrives
300 return nil
301 }
302
303 raw := *m.presets.Template
304
305 // Check templates by key or display name
306 for _, t := range m.templates {
307 if t.Key == raw || strings.EqualFold(t.Template.DisplayName, raw) {
308 m.config.Template = t.Key
309 m.selectedSnapshot = nil
310 m.skippedSteps[stepTemplate] = true
311 if m.presets.DiskSizeGB == nil {
312 m.config.DiskSizeGB = m.defaultDiskSizeGB()
313 }
314 m.step++
315 return m.trySkipCurrentStep() // continue the skip chain
316 }
317 }
318
319 // Check snapshots by name
320 for i, s := range m.snapshots {
321 if s.Name == raw {
322 m.config.Template = s.Name
323 m.selectedSnapshot = &m.snapshots[i]
324 m.skippedSteps[stepTemplate] = true
325 if m.presets.DiskSizeGB == nil {
326 m.config.DiskSizeGB = m.defaultDiskSizeGB()
327 }
328 m.step++
329 return m.trySkipCurrentStep()
330 }
331 }
332
333 // Not found — user picks manually
334 m.initStep()
335 return nil
336}
337
338// initStep sets up step-specific state (cursor, focus, sub-phases) when arriving at a visible step.
339func (m *createModel) initStep() {

Callers 1

trySkipCurrentStepMethod · 0.95

Calls 3

initStepMethod · 0.95
defaultDiskSizeGBMethod · 0.95
trySkipCurrentStepMethod · 0.95

Tested by

no test coverage detected