From 4cef83ffd0aa2225ddf772fe0b129d940168973d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 7 Mar 2023 13:52:01 +0530 Subject: [PATCH] show message even for password asks --- tools/cmd/ask/main.go | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/tools/cmd/ask/main.go b/tools/cmd/ask/main.go index c773f5e7d..dee148ec6 100644 --- a/tools/cmd/ask/main.go +++ b/tools/cmd/ask/main.go @@ -3,14 +3,23 @@ package ask import ( + "errors" "fmt" "kitty/tools/cli" + "kitty/tools/cli/markup" "kitty/tools/tui" ) var _ = fmt.Print +func show_message(msg string) { + if msg != "" { + m := markup.New(true) + fmt.Println(m.Bold(msg)) + } +} + func main(_ *cli.Command, o *Options, args []string) (rc int, err error) { output := tui.KittenOutputSerializer() var result any @@ -21,13 +30,19 @@ func main(_ *cli.Command, o *Options, args []string) (rc int, err error) { case "yesno", "choices": result, err = choices(o, args) if err != nil { - return rc, err + return 1, err } case "password": - result, err = tui.ReadPassword(o.Prompt, true) + show_message(o.Message) + pw, err := tui.ReadPassword(o.Prompt, true) if err != nil { - return rc, err + if errors.Is(err, tui.Canceled) { + pw = "" + } else { + return 1, err + } } + result = map[string]any{"items": args, "response": pw} default: return 1, fmt.Errorf("Unknown type: %s", o.Type) }