(color Color, prompt string, defaultValue string, continueValues ...string)
| 187 | } |
| 188 | |
| 189 | func (l *Logger) Prompt(color Color, prompt string, defaultValue string, continueValues ...string) error { |
| 190 | if l.AssumeYes { |
| 191 | l.Outf(color, "%s [assuming yes]\n", prompt) |
| 192 | return nil |
| 193 | } |
| 194 | |
| 195 | if !l.AssumeTerm && !term.IsTerminal() { |
| 196 | return ErrNoTerminal |
| 197 | } |
| 198 | |
| 199 | if len(continueValues) == 0 { |
| 200 | return errors.New("no continue values provided") |
| 201 | } |
| 202 | |
| 203 | l.Outf(color, "%s [%s/%s]: ", prompt, strings.ToLower(continueValues[0]), strings.ToUpper(defaultValue)) |
| 204 | |
| 205 | reader := bufio.NewReader(l.Stdin) |
| 206 | input, err := reader.ReadString('\n') |
| 207 | if err != nil { |
| 208 | return err |
| 209 | } |
| 210 | |
| 211 | input = strings.TrimSpace(strings.ToLower(input)) |
| 212 | if !slices.Contains(continueValues, input) { |
| 213 | return ErrPromptCancelled |
| 214 | } |
| 215 | |
| 216 | return nil |
| 217 | } |
| 218 | |
| 219 | func (l *Logger) PrintExperiments() error { |
| 220 | w := tabwriter.NewWriter(l.Stdout, 0, 8, 0, ' ', 0) |
no test coverage detected