From 2d95f2b0d663e59b082eb73a8bf68a492105bece Mon Sep 17 00:00:00 2001 From: GyDi Date: Wed, 16 Mar 2022 18:44:25 +0800 Subject: [PATCH] fix: auto launch path --- src-tauri/src/core/verge.rs | 34 ++++++++++++++-------------------- src-tauri/src/utils/resolve.rs | 3 +-- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src-tauri/src/core/verge.rs b/src-tauri/src/core/verge.rs index 615f917..f3a1f85 100644 --- a/src-tauri/src/core/verge.rs +++ b/src-tauri/src/core/verge.rs @@ -133,37 +133,31 @@ impl Verge { } /// init the auto launch - pub fn init_launch(&mut self) { + pub fn init_launch(&mut self) -> Result<()> { let app_exe = current_exe().unwrap(); let app_exe = dunce::canonicalize(app_exe).unwrap(); let app_name = app_exe.file_stem().unwrap().to_str().unwrap(); let app_path = app_exe.as_os_str().to_str().unwrap(); + // fix issue #26 + #[cfg(target_os = "windows")] + let app_path = format!("\"{app_path}\""); + #[cfg(target_os = "windows")] + let app_path = app_path.as_str(); + let auto = AutoLaunchBuilder::new() .set_app_name(app_name) .set_app_path(app_path) .build(); + if let Some(enable) = self.config.enable_auto_launch.as_ref() { + // fix issue #26 + if *enable { + auto.enable()?; + } + } + self.auto_launch = Some(auto); - } - - /// sync the startup when run the app - pub fn sync_launch(&self) -> Result<()> { - let enable = self.config.enable_auto_launch.clone().unwrap_or(false); - if !enable { - return Ok(()); - } - - if self.auto_launch.is_none() { - bail!("should init the auto launch first"); - } - - let auto_launch = self.auto_launch.clone().unwrap(); - - let is_enabled = auto_launch.is_enabled().unwrap_or(false); - if !is_enabled { - auto_launch.enable()?; - } Ok(()) } diff --git a/src-tauri/src/utils/resolve.rs b/src-tauri/src/utils/resolve.rs index 8e7df20..601c43d 100644 --- a/src-tauri/src/utils/resolve.rs +++ b/src-tauri/src/utils/resolve.rs @@ -38,8 +38,7 @@ pub fn resolve_setup(app: &App) { clash.tun_mode(true).unwrap(); } - verge.init_launch(); - log_if_err!(verge.sync_launch()); + log_if_err!(verge.init_launch()); } /// reset system proxy