@@ -24,25 +24,41 @@ type PromptOptions struct {
2424 Validate func (string ) error
2525}
2626
27+ const skipPromptFlag = "yes"
28+
2729func AllowSkipPrompt (cmd * cobra.Command ) {
28- cmd .Flags ().BoolP ("yes" , "y" , false , "Bypass prompts" )
30+ cmd .Flags ().BoolP (skipPromptFlag , "y" , false , "Bypass prompts" )
2931}
3032
33+ const (
34+ ConfirmYes = "yes"
35+ ConfirmNo = "no"
36+ )
37+
3138// Prompt asks the user for input.
3239func Prompt (cmd * cobra.Command , opts PromptOptions ) (string , error ) {
3340 // If the cmd has a "yes" flag for skipping confirm prompts, honor it.
3441 // If it's not a "Confirm" prompt, then don't skip. As the default value of
3542 // "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
3946 }
4047 }
4148
4249 _ , _ = fmt .Fprint (cmd .OutOrStdout (), Styles .FocusedPrompt .String ()+ opts .Text + " " )
4350 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 (") " ))))
4662 } else if opts .Default != "" {
4763 _ , _ = fmt .Fprint (cmd .OutOrStdout (), Styles .Placeholder .Render ("(" + opts .Default + ") " ))
4864 }
0 commit comments