MCPcopy Index your code
hub / github.com/coder/coder / promptPresetSelection

Function promptPresetSelection

cli/create.go:521–547  ·  view source on GitHub ↗

promptPresetSelection shows a CLI selection menu of the presets defined in the template version. Returns the selected preset

(inv *serpent.Invocation, presets []codersdk.Preset)

Source from the content-addressed store, hash-verified

519// promptPresetSelection shows a CLI selection menu of the presets defined in the template version.
520// Returns the selected preset
521func promptPresetSelection(inv *serpent.Invocation, presets []codersdk.Preset) (*codersdk.Preset, error) {
522 presetMap := make(map[string]*codersdk.Preset)
523 var presetOptions []string
524
525 for _, preset := range presets {
526 var option string
527 if preset.Description == "" {
528 option = preset.Name
529 } else {
530 option = fmt.Sprintf("%s: %s", preset.Name, preset.Description)
531 }
532 presetOptions = append(presetOptions, option)
533 presetMap[option] = &preset
534 }
535
536 // Show selection UI
537 _, _ = fmt.Fprintln(inv.Stdout, pretty.Sprint(cliui.DefaultStyles.Wrap, "Select a preset below:"))
538 selected, err := cliui.Select(inv, cliui.SelectOptions{
539 Options: presetOptions,
540 HideSearch: true,
541 })
542 if err != nil {
543 return nil, xerrors.Errorf("failed to select preset: %w", err)
544 }
545
546 return presetMap[selected], nil
547}
548
549// displayAppliedPreset shows the user which preset was applied and its parameters
550func displayAppliedPreset(inv *serpent.Invocation, preset *codersdk.Preset, parameters []codersdk.WorkspaceBuildParameter) {

Callers 1

CreateMethod · 0.85

Calls 2

SelectFunction · 0.92
ErrorfMethod · 0.45

Tested by

no test coverage detected