From 3c648f419273f191d43265d7b25466d2b58b6f8d Mon Sep 17 00:00:00 2001 From: ByteDream Date: Thu, 13 Apr 2023 21:35:28 +0200 Subject: [PATCH] Actually remove session file if login remove flag is set --- crunchy-cli-core/src/lib.rs | 22 +++++++++++++--------- crunchy-cli-core/src/login/command.rs | 4 ++-- crunchy-cli-core/src/login/mod.rs | 2 +- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/crunchy-cli-core/src/lib.rs b/crunchy-cli-core/src/lib.rs index 91612f1..65c3ca1 100644 --- a/crunchy-cli-core/src/lib.rs +++ b/crunchy-cli-core/src/lib.rs @@ -15,6 +15,7 @@ mod download; mod login; mod utils; +use crate::login::session_file_path; pub use archive::Archive; use crunchyroll_rs::error::CrunchyrollError; pub use download::Download; @@ -142,7 +143,16 @@ pub async fn cli_entrypoint() { match &mut cli.command { Command::Archive(archive) => pre_check_executor(archive).await, Command::Download(download) => pre_check_executor(download).await, - Command::Login(login) => pre_check_executor(login).await, + Command::Login(login) => { + if login.remove { + if let Some(session_file) = session_file_path() { + let _ = fs::remove_file(session_file); + } + return; + } else { + pre_check_executor(login).await + } + } }; let ctx = match create_ctx(&cli).await { @@ -187,13 +197,7 @@ pub async fn cli_entrypoint() { match cli.command { Command::Archive(archive) => execute_executor(archive, ctx).await, Command::Download(download) => execute_executor(download, ctx).await, - Command::Login(login) => { - if login.remove { - return; - } else { - execute_executor(login, ctx).await - } - } + Command::Login(login) => execute_executor(login, ctx).await, }; } @@ -285,7 +289,7 @@ async fn crunchyroll_session(cli: &Cli) -> Result { let progress_handler = progress!("Logging in"); if login_methods_count == 0 { - if let Some(login_file_path) = login::login_file_path() { + if let Some(login_file_path) = login::session_file_path() { if login_file_path.exists() { let session = fs::read_to_string(login_file_path)?; if let Some((token_type, token)) = session.split_once(':') { diff --git a/crunchy-cli-core/src/login/command.rs b/crunchy-cli-core/src/login/command.rs index f164a0b..ad101da 100644 --- a/crunchy-cli-core/src/login/command.rs +++ b/crunchy-cli-core/src/login/command.rs @@ -17,7 +17,7 @@ pub struct Login { #[async_trait::async_trait(?Send)] impl Execute for Login { async fn execute(self, ctx: Context) -> Result<()> { - if let Some(login_file_path) = login_file_path() { + if let Some(login_file_path) = session_file_path() { fs::create_dir_all(login_file_path.parent().unwrap())?; match ctx.crunchy.session_token().await { @@ -36,6 +36,6 @@ impl Execute for Login { } } -pub fn login_file_path() -> Option { +pub fn session_file_path() -> Option { dirs::config_dir().map(|config_dir| config_dir.join("crunchy-cli").join("session")) } diff --git a/crunchy-cli-core/src/login/mod.rs b/crunchy-cli-core/src/login/mod.rs index 9025e68..e2ab88c 100644 --- a/crunchy-cli-core/src/login/mod.rs +++ b/crunchy-cli-core/src/login/mod.rs @@ -1,4 +1,4 @@ mod command; -pub use command::login_file_path; +pub use command::session_file_path; pub use command::Login;