From e43e5ce74a85d87a625295b9b089a1b5b8e26fab Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Sun, 9 May 2021 20:11:17 +0100 Subject: Add logout, only login if not already logged in (#91) Also: - Ensures that a key is generated as soon as a user registers! - Ensures that "atuin key" will generate a key if needed, and doesn't double base64 encode data And a few other little fixes :) Resolves #85 Resolves #86 --- src/command/mod.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/command/mod.rs') diff --git a/src/command/mod.rs b/src/command/mod.rs index 161c99d9..6050c4eb 100644 --- a/src/command/mod.rs +++ b/src/command/mod.rs @@ -13,6 +13,7 @@ mod history; mod import; mod init; mod login; +mod logout; mod register; mod search; mod server; @@ -83,6 +84,9 @@ pub enum AtuinCmd { #[structopt(about = "login to the configured server")] Login(login::Cmd), + #[structopt(about = "log out")] + Logout, + #[structopt(about = "register with the configured server")] Register(register::Cmd), @@ -136,6 +140,10 @@ impl AtuinCmd { Self::Sync { force } => sync::run(&client_settings, force, &mut db).await, Self::Login(l) => l.run(&client_settings), + Self::Logout => { + logout::run(); + Ok(()) + } Self::Register(r) => register::run( &client_settings, r.username.as_str(), @@ -143,8 +151,8 @@ impl AtuinCmd { r.password.as_str(), ), Self::Key => { - let key = std::fs::read(client_settings.key_path.as_str())?; - println!("{}", base64::encode(key)); + let key = atuin_client::encryption::load_key(&client_settings)?; + println!("{}", atuin_client::encryption::encode_key(key)?); Ok(()) } -- cgit v1.2.3