github.com/ablease/cli@v6.37.1-0.20180613014814-3adbb7d7fb19+incompatible/util/ui/prompt.go (about) 1 package ui 2 3 import "github.com/vito/go-interact/interact" 4 5 // DisplayBoolPrompt outputs the prompt and waits for user input. It only 6 // allows for a boolean response. A default boolean response can be set with 7 // defaultResponse. 8 func (ui *UI) DisplayBoolPrompt(defaultResponse bool, template string, templateValues ...map[string]interface{}) (bool, error) { 9 ui.terminalLock.Lock() 10 defer ui.terminalLock.Unlock() 11 12 response := defaultResponse 13 interactivePrompt := interact.NewInteraction(ui.TranslateText(template, templateValues...)) 14 interactivePrompt.Input = ui.In 15 interactivePrompt.Output = ui.OutForInteration 16 err := interactivePrompt.Resolve(&response) 17 return response, err 18 } 19 20 // DisplayPasswordPrompt outputs the prompt and waits for user input. Hides 21 // user's response from the screen. 22 func (ui *UI) DisplayPasswordPrompt(template string, templateValues ...map[string]interface{}) (string, error) { 23 ui.terminalLock.Lock() 24 defer ui.terminalLock.Unlock() 25 26 var password interact.Password 27 interactivePrompt := interact.NewInteraction(ui.TranslateText(template, templateValues...)) 28 interactivePrompt.Input = ui.In 29 interactivePrompt.Output = ui.OutForInteration 30 err := interactivePrompt.Resolve(interact.Required(&password)) 31 return string(password), err 32 }