intelli_shell/process/
tldr_clear.rs

1use super::{Process, ProcessOutput};
2use crate::{
3    cli::TldrClearProcess, config::Config, errors::AppError, format_error, format_msg, service::IntelliShellService,
4};
5
6impl Process for TldrClearProcess {
7    async fn execute(self, config: Config, service: IntelliShellService) -> color_eyre::Result<ProcessOutput> {
8        match service.clear_tldr_commands(self.category).await {
9            Ok(0) => Ok(ProcessOutput::success().stderr(format_msg!(config.theme, "No commands were found"))),
10            Ok(deleted) => {
11                Ok(ProcessOutput::success().stderr(format_msg!(config.theme, "Removed {deleted} tldr commands")))
12            }
13            Err(AppError::UserFacing(err)) => Ok(ProcessOutput::fail().stderr(format_error!(config.theme, "{err}"))),
14            Err(AppError::Unexpected(report)) => Err(report),
15        }
16    }
17}