MCPcopy Create free account
hub / github.com/github/gh-aw / selectWorkflowNonInteractive

Function selectWorkflowNonInteractive

pkg/cli/run_interactive.go:210–232  ·  view source on GitHub ↗

selectWorkflowNonInteractive provides a fallback for non-TTY environments

(workflows []WorkflowOption)

Source from the content-addressed store, hash-verified

208
209// selectWorkflowNonInteractive provides a fallback for non-TTY environments
210func selectWorkflowNonInteractive(workflows []WorkflowOption) (*WorkflowOption, error) {
211 runInteractiveLog.Printf("Non-TTY detected, showing text list: %d workflows", len(workflows))
212
213 fmt.Fprintf(os.Stderr, "\nSelect a workflow to run:\n\n")
214 for i, wf := range workflows {
215 fmt.Fprintf(os.Stderr, " %d) %s\n", i+1, wf.Name)
216 }
217 fmt.Fprintf(os.Stderr, "\nSelect (1-%d): ", len(workflows))
218
219 var choice int
220 _, err := fmt.Scanf("%d", &choice)
221 if err != nil {
222 return nil, fmt.Errorf("invalid input: %w", err)
223 }
224
225 if choice < 1 || choice > len(workflows) {
226 return nil, fmt.Errorf("selection out of range (must be 1-%d)", len(workflows))
227 }
228
229 selectedWorkflow := &workflows[choice-1]
230 runInteractiveLog.Printf("Selected workflow from text list: %s", selectedWorkflow.Name)
231 return selectedWorkflow, nil
232}
233
234// showWorkflowInfo displays information about the selected workflow
235func showWorkflowInfo(wf *WorkflowOption) {

Callers 1

selectWorkflowFunction · 0.85

Calls 2

PrintfMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected