From 61bfb3cfa8857a144460d05330c1d1fccded960b Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sun, 9 Dec 2018 17:44:33 -0800 Subject: Make password prompt compatible with Windows --- cli/ask_credentials.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'cli') diff --git a/cli/ask_credentials.go b/cli/ask_credentials.go index bd4bf5f..9021d9b 100644 --- a/cli/ask_credentials.go +++ b/cli/ask_credentials.go @@ -14,13 +14,23 @@ import ( ) func askCredentials() (string, string) { - reader := bufio.NewReader(os.Stdin) + fd := int(os.Stdin.Fd()) + + if !terminal.IsTerminal(fd) { + fmt.Fprintf(os.Stderr, "This is not a terminal, exiting.") + os.Exit(1) + } fmt.Print("Enter Username: ") + + reader := bufio.NewReader(os.Stdin) username, _ := reader.ReadString('\n') fmt.Print("Enter Password: ") - bytePassword, _ := terminal.ReadPassword(0) + + state, _ := terminal.GetState(fd) + defer terminal.Restore(fd, state) + bytePassword, _ := terminal.ReadPassword(fd) fmt.Printf("\n") return strings.TrimSpace(username), strings.TrimSpace(string(bytePassword)) -- cgit v1.2.3