From 65fb2ca2d521385ba376cfeb479bc555480b83a6 Mon Sep 17 00:00:00 2001 From: GyDi Date: Thu, 20 Jan 2022 23:41:08 +0800 Subject: [PATCH] feat: enable update clash info --- src-tauri/src/core/clash.rs | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src-tauri/src/core/clash.rs b/src-tauri/src/core/clash.rs index 3ecf76a..e281b04 100644 --- a/src-tauri/src/core/clash.rs +++ b/src-tauri/src/core/clash.rs @@ -32,6 +32,15 @@ static CLASH_CONFIG: &str = "config.yaml"; // todo: be able to change config field impl Clash { pub fn new() -> Clash { + Clash { + info: Clash::get_info(), + sidecar: None, + } + } + + /// parse the clash's config.yaml + /// get some information + fn get_info() -> ClashInfo { let clash_config = config::read_yaml::(dirs::app_home_dir().join(CLASH_CONFIG)); let key_port_1 = Value::String("port".to_string()); @@ -76,17 +85,20 @@ impl Clash { _ => None, }; - Clash { - info: ClashInfo { - status: "init".into(), - port, - server, - secret, - }, - sidecar: None, + ClashInfo { + status: "init".into(), + port, + server, + secret, } } + /// update the clash info + pub fn update_info(&mut self) -> Result<(), String> { + self.info = Clash::get_info(); + Ok(()) + } + /// run clash sidecar pub fn run_sidecar(&mut self) -> Result<(), String> { let app_dir = dirs::app_home_dir(); @@ -127,6 +139,7 @@ impl Clash { /// restart clash sidecar pub fn restart_sidecar(&mut self) -> Result<(), String> { + self.update_info()?; self.drop_sidecar()?; self.run_sidecar() }