modcli/input/
secure.rs

1use crate::output::hook;
2use rpassword::read_password;
3use std::io::{self, Write};
4
5/// Prompts for a secure password (no echo)
6pub fn prompt_password(prompt: &str) -> String {
7    print!("{prompt}: ");
8    if let Err(e) = io::stdout().flush() {
9        hook::warn(&format!("flush failed: {e}"));
10    }
11
12    match read_password() {
13        Ok(password) => password,
14        Err(e) => {
15            hook::error(&format!("failed to read password: {e}"));
16            String::new()
17        }
18    }
19}