github.com/rclone/rclone@v1.66.1-0.20240517100346-7b89735ae726/fs/config/config_read_password.go (about) 1 // ReadPassword for OSes which are supported by golang.org/x/term 2 // See https://github.com/golang/go/issues/14441 - plan9 3 4 //go:build !plan9 5 6 package config 7 8 import ( 9 "fmt" 10 "log" 11 "os" 12 13 "github.com/rclone/rclone/lib/terminal" 14 ) 15 16 // ReadPassword reads a password without echoing it to the terminal. 17 func ReadPassword() string { 18 stdin := int(os.Stdin.Fd()) 19 if !terminal.IsTerminal(stdin) { 20 return ReadLine() 21 } 22 line, err := terminal.ReadPassword(stdin) 23 _, _ = fmt.Fprintln(os.Stderr) 24 if err != nil { 25 log.Fatalf("Failed to read password: %v", err) 26 } 27 return string(line) 28 }