Files
termscp/src/utils/tty.rs
veeso 4d4c71106d
Some checks are pending
Linux / build (push) Waiting to run
MacOS / build (push) Waiting to run
Windows / build (push) Waiting to run
feat: cli args for double remote
2024-10-06 21:14:26 +02:00

25 lines
694 B
Rust

//! ## Utils
//!
//! `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(
terminal_bridge: &mut TerminalBridge,
prompt: impl ToString,
) -> 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
}