(cmd *cobra.Command, result *string, fn pickerOptionsFunc)
| 37 | type pickerOptionsFunc func(ctx context.Context) (pickerOptions, error) |
| 38 | |
| 39 | func (a *Argument) Pick(cmd *cobra.Command, result *string, fn pickerOptionsFunc) error { |
| 40 | if !canPrompt(cmd) { |
| 41 | return fmt.Errorf("missing a required argument: %s", a.GetName()) |
| 42 | } |
| 43 | |
| 44 | var opts pickerOptions |
| 45 | err := ansi.Waiting(func() error { |
| 46 | var err error |
| 47 | opts, err = fn(cmd.Context()) |
| 48 | return err |
| 49 | }) |
| 50 | |
| 51 | if err != nil { |
| 52 | return err |
| 53 | } |
| 54 | |
| 55 | defaultLabel := opts.defaultLabel() |
| 56 | var val string |
| 57 | if err := _select(a, &val, opts.labels(), &defaultLabel, false); err != nil { |
| 58 | return err |
| 59 | } |
| 60 | |
| 61 | *result = opts.getValue(val) |
| 62 | return nil |
| 63 | } |
| 64 | |
| 65 | func (a *Argument) PickMany(cmd *cobra.Command, result *[]string, fn pickerOptionsFunc) error { |
| 66 | if !canPrompt(cmd) { |
no test coverage detected