@@ -24,25 +24,41 @@ type PromptOptions struct {
24
24
Validate func (string ) error
25
25
}
26
26
27
+ const skipPromptFlag = "yes"
28
+
27
29
func AllowSkipPrompt (cmd * cobra.Command ) {
28
- cmd .Flags ().BoolP ("yes" , "y" , false , "Bypass prompts" )
30
+ cmd .Flags ().BoolP (skipPromptFlag , "y" , false , "Bypass prompts" )
29
31
}
30
32
33
+ const (
34
+ ConfirmYes = "yes"
35
+ ConfirmNo = "no"
36
+ )
37
+
31
38
// Prompt asks the user for input.
32
39
func Prompt (cmd * cobra.Command , opts PromptOptions ) (string , error ) {
33
40
// If the cmd has a "yes" flag for skipping confirm prompts, honor it.
34
41
// If it's not a "Confirm" prompt, then don't skip. As the default value of
35
42
// "yes" makes no sense.
36
- if opts .IsConfirm && cmd .Flags ().Lookup ("yes" ) != nil {
37
- if skip , _ := cmd .Flags ().GetBool ("yes" ); skip {
38
- return "yes" , nil
43
+ if opts .IsConfirm && cmd .Flags ().Lookup (skipPromptFlag ) != nil {
44
+ if skip , _ := cmd .Flags ().GetBool (skipPromptFlag ); skip {
45
+ return ConfirmYes , nil
39
46
}
40
47
}
41
48
42
49
_ , _ = fmt .Fprint (cmd .OutOrStdout (), Styles .FocusedPrompt .String ()+ opts .Text + " " )
43
50
if opts .IsConfirm {
44
- opts .Default = "yes"
45
- _ , _ = fmt .Fprint (cmd .OutOrStdout (), Styles .Placeholder .Render ("(" + Styles .Bold .Render ("yes" )+ Styles .Placeholder .Render ("/no) " )))
51
+ if len (opts .Default ) == 0 {
52
+ opts .Default = ConfirmYes
53
+ }
54
+ renderedYes := Styles .Placeholder .Render (ConfirmYes )
55
+ renderedNo := Styles .Placeholder .Render (ConfirmNo )
56
+ if opts .Default == ConfirmYes {
57
+ renderedYes = Styles .Bold .Render (ConfirmYes )
58
+ } else {
59
+ renderedNo = Styles .Bold .Render (ConfirmNo )
60
+ }
61
+ _ , _ = fmt .Fprint (cmd .OutOrStdout (), Styles .Placeholder .Render ("(" + renderedYes + Styles .Placeholder .Render ("/" + renderedNo + Styles .Placeholder .Render (") " ))))
46
62
} else if opts .Default != "" {
47
63
_ , _ = fmt .Fprint (cmd .OutOrStdout (), Styles .Placeholder .Render ("(" + opts .Default + ") " ))
48
64
}
0 commit comments