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  }