From e6121149b3bba0d69416a78cc656b716a871a20b Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sat, 19 Oct 2024 16:17:58 +0300 Subject: [PATCH] config: use readline for initializing username/password --- cmd/gomuks/config.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/cmd/gomuks/config.go b/cmd/gomuks/config.go index ce75058..6da120a 100644 --- a/cmd/gomuks/config.go +++ b/cmd/gomuks/config.go @@ -22,6 +22,7 @@ import ( "os" "path/filepath" + "github.com/chzyer/readline" "github.com/rs/zerolog" "go.mau.fi/util/ptr" "go.mau.fi/util/random" @@ -77,20 +78,17 @@ func (gmx *Gomuks) LoadConfig() error { } if gmx.Config.Web.Username == "" || gmx.Config.Web.PasswordHash == "" { fmt.Println("Please create a username and password for authenticating the web app") - fmt.Print("Username: ") - _, err = fmt.Scanln(&gmx.Config.Web.Username) + gmx.Config.Web.Username, err = readline.Line("Username: ") if err != nil { return fmt.Errorf("failed to read username: %w", err) } else if len(gmx.Config.Web.Username) == 0 || len(gmx.Config.Web.Username) > 32 { return fmt.Errorf("username must be 1-32 characters long") } - fmt.Print("Password: ") - var passwd string - _, err = fmt.Scanln(&passwd) + passwd, err := readline.Password("Password: ") if err != nil { return fmt.Errorf("failed to read password: %w", err) } - hash, err := bcrypt.GenerateFromPassword([]byte(passwd), 12) + hash, err := bcrypt.GenerateFromPassword(passwd, 12) if err != nil { return fmt.Errorf("failed to hash password: %w", err) }