From dfc5ff675985e7d998557fa4e7390eca88db5662 Mon Sep 17 00:00:00 2001 From: fdai7374 Date: Thu, 2 Feb 2023 18:57:54 +0100 Subject: [PATCH] feat: add confirmation for logout --- src/builtins/logout.rs | 6 ++++++ 1 file changed, 6 insertions(+) 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