From c0b30b638ae6f0ef96750577df9e676b49000645 Mon Sep 17 00:00:00 2001 From: Mahrud Sayrafi Date: Thu, 8 Feb 2018 14:54:35 -0800 Subject: [PATCH] user/pass prompts from ro-ssh-agent are printed to stderr --- cmd/ro/gopass/gopass.go | 4 ++-- cmd/ro/main.go | 8 ++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/cmd/ro/gopass/gopass.go b/cmd/ro/gopass/gopass.go index 782aa02..b1e3a72 100644 --- a/cmd/ro/gopass/gopass.go +++ b/cmd/ro/gopass/gopass.go @@ -44,7 +44,7 @@ func GetPass(prompt string) (passwd string, err error) { brk := make(chan bool) // Display the prompt. - fmt.Print(prompt) + fmt.Fprintf(os.Stderr, prompt) // File descriptors for stdin, stdout, and stderr. fd := []uintptr{os.Stdin.Fd(), os.Stdout.Fd(), os.Stderr.Fd()} @@ -76,7 +76,7 @@ func GetPass(prompt string) (passwd string, err error) { } // Carraige return after the user input. - fmt.Println("") + fmt.Fprintln(os.Stderr, "") return passwd, err } diff --git a/cmd/ro/main.go b/cmd/ro/main.go index aaf98e9..dd69393 100644 --- a/cmd/ro/main.go +++ b/cmd/ro/main.go @@ -86,11 +86,7 @@ func registerFlags() { } func readLine(prompt string) (line string, err error) { - // TODO: find a way to ask for username and password - // such that the prompt itself is not captured in the - // standard output. This way running `ro ... ssh-agent` - // will set the SSH_AUTH_PATH environment variable. - fmt.Printf(prompt) + fmt.Fprintf(os.Stderr, prompt) rd := bufio.NewReader(os.Stdin) line, err = rd.ReadString('\n') if err != nil { @@ -116,7 +112,7 @@ func getUserCredentials() { } if pswd == "" { - pswd, err = gopass.GetPass("Password:") + pswd, err = gopass.GetPass("Password: ") processError("error", err) } }