From 81968a579d98654561fd8ae064544b44aa24e7ed Mon Sep 17 00:00:00 2001 From: Tunglies Date: Wed, 26 Mar 2025 15:02:08 +0800 Subject: [PATCH] feat: reorganize service commands and implement logging for service management --- src-tauri/src/cmd/core.rs | 8 -------- src-tauri/src/cmd/mod.rs | 8 ++++---- src-tauri/src/cmd/service.rs | 38 ++++++++++++++++++++++++++++++++++++ src-tauri/src/cmd/system.rs | 9 +-------- src-tauri/src/core/core.rs | 7 ------- src-tauri/src/lib.rs | 7 +++++-- 6 files changed, 48 insertions(+), 29 deletions(-) delete mode 100644 src-tauri/src/cmd/core.rs create mode 100644 src-tauri/src/cmd/service.rs diff --git a/src-tauri/src/cmd/core.rs b/src-tauri/src/cmd/core.rs deleted file mode 100644 index 0b1c44c6..00000000 --- a/src-tauri/src/cmd/core.rs +++ /dev/null @@ -1,8 +0,0 @@ -use super::CmdResult; -use crate::{core::CoreManager, wrap_err}; - -/// 修复系统服务 -#[tauri::command] -pub async fn repair_service() -> CmdResult { - wrap_err!(CoreManager::global().repair_service().await) -} \ No newline at end of file diff --git a/src-tauri/src/cmd/mod.rs b/src-tauri/src/cmd/mod.rs index cbfd4a87..e49beefe 100644 --- a/src-tauri/src/cmd/mod.rs +++ b/src-tauri/src/cmd/mod.rs @@ -6,33 +6,33 @@ pub type CmdResult = Result; // Command modules pub mod app; pub mod clash; -pub mod core; +pub mod lighteweight; pub mod media_unlock_checker; pub mod network; pub mod profile; pub mod proxy; pub mod runtime; pub mod save_profile; +pub mod service; pub mod system; pub mod uwp; pub mod validate; pub mod verge; pub mod webdav; -pub mod lighteweight; // Re-export all command functions for backwards compatibility pub use app::*; pub use clash::*; -pub use core::*; +pub use lighteweight::*; pub use media_unlock_checker::*; pub use network::*; pub use profile::*; pub use proxy::*; pub use runtime::*; pub use save_profile::*; +pub use service::*; pub use system::*; pub use uwp::*; pub use validate::*; pub use verge::*; pub use webdav::*; -pub use lighteweight::*; diff --git a/src-tauri/src/cmd/service.rs b/src-tauri/src/cmd/service.rs new file mode 100644 index 00000000..7974ae28 --- /dev/null +++ b/src-tauri/src/cmd/service.rs @@ -0,0 +1,38 @@ +use super::CmdResult; +use crate::{ + core::{service, CoreManager}, + logging_error, + utils::logging::Type, +}; + +#[tauri::command] +pub async fn install_service() -> CmdResult { + logging_error!(Type::Service, true, service::install_service().await); + logging_error!(Type::Core, true, CoreManager::global().restart_core().await); + Ok(()) +} + +#[tauri::command] +pub async fn uninstall_service() -> CmdResult { + logging_error!(Type::Service, true, service::uninstall_service().await); + logging_error!(Type::Core, true, CoreManager::global().restart_core().await); + Ok(()) +} + +#[tauri::command] +pub async fn reinstall_service() -> CmdResult { + logging_error!(Type::Service, true, service::reinstall_service().await); + logging_error!(Type::Core, true, CoreManager::global().restart_core().await); + Ok(()) +} + +#[tauri::command] +pub async fn repair_service() -> CmdResult { + logging_error!( + Type::Service, + true, + service::force_reinstall_service().await + ); + logging_error!(Type::Core, true, CoreManager::global().restart_core().await); + Ok(()) +} diff --git a/src-tauri/src/cmd/system.rs b/src-tauri/src/cmd/system.rs index 28e773e7..3c7c04e8 100644 --- a/src-tauri/src/cmd/system.rs +++ b/src-tauri/src/cmd/system.rs @@ -1,8 +1,7 @@ use super::CmdResult; use crate::{ - core::{self, handle, service, CoreManager}, + core::{self, handle, CoreManager}, module::sysinfo::PlatformSpecification, - wrap_err, }; use once_cell::sync::Lazy; use std::{ @@ -52,12 +51,6 @@ pub async fn get_running_mode() -> Result { } } -/// 安装/重装系统服务 -#[tauri::command] -pub async fn install_service() -> CmdResult { - wrap_err!(service::reinstall_service().await) -} - /// 获取应用的运行时间(毫秒) #[tauri::command] pub fn get_app_uptime() -> CmdResult { diff --git a/src-tauri/src/core/core.rs b/src-tauri/src/core/core.rs index dd735642..1d34f9b0 100644 --- a/src-tauri/src/core/core.rs +++ b/src-tauri/src/core/core.rs @@ -511,13 +511,6 @@ impl CoreManager { Ok(()) } - /// 强制重新安装服务(供UI调用,用户主动修复服务) - pub async fn repair_service(&self) -> Result<()> { - service::force_reinstall_service().await?; - self.restart_core().await?; - Ok(()) - } - /// 切换核心 pub async fn change_core(&self, clash_core: Option) -> Result<(), String> { if clash_core.is_none() { diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index aeeabe6b..2e5d179f 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -151,10 +151,13 @@ pub fn run() { cmd::restart_app, // 添加新的命令 cmd::get_running_mode, - cmd::install_service, - cmd::repair_service, cmd::get_app_uptime, cmd::get_auto_launch_status, + // service 管理 + cmd::install_service, + cmd::uninstall_service, + cmd::reinstall_service, + cmd::repair_service, // clash cmd::get_clash_info, cmd::patch_clash_config,