fix: Password prompt is broken
Some checks are pending
Linux / build (push) Waiting to run
MacOS / build (push) Waiting to run
Windows / build (push) Waiting to run

This commit is contained in:
veeso
2024-10-06 11:11:03 +02:00
parent cc6c4a8bda
commit 418b132f7e
4 changed files with 30 additions and 7 deletions

View File

@@ -2,11 +2,23 @@
//!
//! `Utils` implements utilities functions to work with layouts
use tuirealm::terminal::TerminalBridge;
/// Read a secret from tty with customisable prompt
pub fn read_secret_from_tty(prompt: &str) -> std::io::Result<Option<String>> {
match rpassword::prompt_password(prompt) {
pub fn read_secret_from_tty(
terminal_bridge: &mut TerminalBridge,
prompt: &str,
) -> std::io::Result<Option<String>> {
let _ = terminal_bridge.disable_raw_mode();
let _ = terminal_bridge.leave_alternate_screen();
let res = match rpassword::prompt_password(prompt) {
Ok(p) if p.is_empty() => Ok(None),
Ok(p) => Ok(Some(p)),
Err(err) => Err(err),
}
};
let _ = terminal_bridge.enter_alternate_screen();
let _ = terminal_bridge.enable_raw_mode();
res
}