From 2447917ac70fded8b11318521b4d5ca23d58836c Mon Sep 17 00:00:00 2001 From: sxyazi Date: Mon, 18 Sep 2023 07:46:42 +0800 Subject: [PATCH] feat: make `trash` optional --- core/Cargo.toml | 6 +++++- core/src/tasks/workers/file.rs | 21 ++++++++++++--------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/core/Cargo.toml b/core/Cargo.toml index a29d996a..ed6ce21f 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -26,9 +26,13 @@ syntect = "^5" tokio = { version = "^1", features = [ "parking_lot", "macros", "rt-multi-thread", "sync", "time", "fs", "process", "io-std", "io-util" ] } tokio-stream = "^0" tracing = "^0" -trash = "^3" +trash = { version = "^3", optional = true } unicode-width = "^0" yazi-prebuild = "^0" [target.'cfg(target_os = "windows")'.dependencies] clipboard-win = "^4" + +[features] +trash_bin = [ "trash" ] +default = [ "trash_bin" ] diff --git a/core/src/tasks/workers/file.rs b/core/src/tasks/workers/file.rs index c55258a6..a7d9ea07 100644 --- a/core/src/tasks/workers/file.rs +++ b/core/src/tasks/workers/file.rs @@ -152,16 +152,19 @@ impl File { self.sch.send(TaskOp::Adv(task.id, 1, task.length))? } FileOp::Trash(task) => { - #[cfg(target_os = "macos")] + #[cfg(feature = "trash_bin")] { - use trash::{macos::{DeleteMethod, TrashContextExtMacos}, TrashContext}; - let mut ctx = TrashContext::default(); - ctx.set_delete_method(DeleteMethod::NsFileManager); - ctx.delete(&task.target)?; - } - #[cfg(not(target_os = "macos"))] - { - trash::delete(&task.target)?; + #[cfg(target_os = "macos")] + { + use trash::{macos::{DeleteMethod, TrashContextExtMacos}, TrashContext}; + let mut ctx = TrashContext::default(); + ctx.set_delete_method(DeleteMethod::NsFileManager); + ctx.delete(&task.target)?; + } + #[cfg(not(target_os = "macos"))] + { + trash::delete(&task.target)?; + } } self.sch.send(TaskOp::Adv(task.id, 1, task.length))?; }