diff --git a/src/builtins/logout.rs b/src/builtins/logout.rs index f601542..261203c 100644 --- a/src/builtins/logout.rs +++ b/src/builtins/logout.rs @@ -1,15 +1,21 @@ use crate::builtins::{Builtin, BuiltinConfig}; use crate::error::ShellError; use system_shutdown::logout; +use std::io; pub struct Logout; impl Builtin for Logout { fn execute(&mut self, _: &mut BuiltinConfig, _: Vec) -> Result<(), ShellError> { + let mut input = String::new(); + println!("Are you sure? Unsaved data will be lost.\ny/n"); + io::stdin().read_line(&mut input).expect("Couldn't read form stdin"); + if input.chars().next().unwrap()=='y' { match logout() { Ok(_) => println!("Logging out"), Err(error) => eprintln!("Failed to log out: {}", error), } + }else {println!("Aborting");} Ok(()) } } \ No newline at end of file