Refactor: Extract confirm into a new mod

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2022-06-10 12:43:01 +10:00
parent f53680c497
commit c1809d41fa
No known key found for this signature in database
GPG key ID: 591C0B03040416D6
2 changed files with 26 additions and 18 deletions

21
src/helpers/confirm.rs Normal file
View file

@ -0,0 +1,21 @@
use log::info;
use std::io::{stderr, stdin, Write};
use crate::BinstallError;
pub fn confirm() -> Result<(), BinstallError> {
loop {
info!("Do you wish to continue? yes/[no]");
eprint!("? ");
stderr().flush().ok();
let mut input = String::new();
stdin().read_line(&mut input).unwrap();
match input.as_str().trim() {
"yes" | "y" | "YES" | "Y" => break Ok(()),
"no" | "n" | "NO" | "N" | "" => break Err(BinstallError::UserAbort),
_ => continue,
}
}
}