diff --git a/fs/config.go b/fs/config.go index 125c5a775..f46e54d77 100644 --- a/fs/config.go +++ b/fs/config.go @@ -28,7 +28,6 @@ import ( "github.com/mreiferson/go-httpclient" "github.com/spf13/pflag" "golang.org/x/crypto/nacl/secretbox" - "golang.org/x/crypto/ssh/terminal" "golang.org/x/text/unicode/norm" ) @@ -537,17 +536,6 @@ func ReadLine() string { return strings.TrimSpace(line) } -// ReadPassword reads a password -// without echoing it to the terminal. -func ReadPassword() string { - line, err := terminal.ReadPassword(int(os.Stdin.Fd())) - fmt.Println("") - if err != nil { - log.Fatalf("Failed to read password: %v", err) - } - return strings.TrimSpace(string(line)) -} - // Command - choose one func Command(commands []string) byte { opts := []string{} diff --git a/fs/config_read_password.go b/fs/config_read_password.go new file mode 100644 index 000000000..19c60cd98 --- /dev/null +++ b/fs/config_read_password.go @@ -0,0 +1,26 @@ +// ReadPassword for OSes which are supported by golang.org/x/crypto/ssh/terminal +// See https://github.com/golang/go/issues/14441 - plan9 +// https://github.com/golang/go/issues/13085 - solaris + +// +build !solaris,!plan9 + +package fs + +import ( + "fmt" + "log" + "os" + "strings" + + "golang.org/x/crypto/ssh/terminal" +) + +// ReadPassword reads a password without echoing it to the terminal. +func ReadPassword() string { + line, err := terminal.ReadPassword(int(os.Stdin.Fd())) + fmt.Println("") + if err != nil { + log.Fatalf("Failed to read password: %v", err) + } + return strings.TrimSpace(string(line)) +} diff --git a/fs/config_read_password_unsupported.go b/fs/config_read_password_unsupported.go new file mode 100644 index 000000000..0666f59fc --- /dev/null +++ b/fs/config_read_password_unsupported.go @@ -0,0 +1,12 @@ +// ReadPassword for OSes which are not supported by golang.org/x/crypto/ssh/terminal +// See https://github.com/golang/go/issues/14441 - plan9 +// https://github.com/golang/go/issues/13085 - solaris + +// +build solaris plan9 + +package fs + +// ReadPassword reads a password with echoing it to the terminal. +func ReadPassword() string { + return ReadLine() +}