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}