package data import ( "bufio" "fmt" "os" "strings" "syscall" "golang.org/x/term" ) func getUsername() (string, error) { user := os.Getenv("DB_USER") if user == "" { var err error fmt.Printf("DB Benutzer: ") user, err = bufio.NewReader(os.Stdin).ReadString('\n') if err != nil { return fmt.Errorf("error: cmd/data/helpers.go getUsername bufio.NewReader().ReadString(): %v", err) } } return strings.TrimSpace(user), nil } func getPassword() (string, error) { pass := os.Getenv("DB_PASS") if pass == "" { fmt.Printf("DB Passwort: ") bytePass, err := term.ReadPassword(int(syscall.Stdin)) if err != nil { return fmt.Errorf("error: cmd/data/helpers.go getPassword term.ReadPassword(): %v", err) } fmt.Println() pass = strings.TrimSpace(string(bytePass)) } return pass, nil } func getCredentials() (string, string, error) { user, err := getUsername() if err != nil { return "", "", fmt.Errorf("error: cmd/data/helpers.go getCredentials getUsername(): %v", err) } pass, err := getPassword() if err != nil { return "", "", fmt.Errorf("error: cmd/data/helpers.go getCredentials getPassword(): %v", err) } return user, pass, nil }