|
@@ -17,45 +17,39 @@ use tauri::{
|
|
|
/// Run the clash bin
|
|
|
pub fn run_clash_bin(app_handle: &AppHandle) -> ClashInfoPayload {
|
|
|
let app_dir = app_home_dir();
|
|
|
+ let app_dir = app_dir.as_os_str().to_str().unwrap();
|
|
|
+
|
|
|
let mut payload = ClashInfoPayload {
|
|
|
status: "success".to_string(),
|
|
|
controller: None,
|
|
|
message: None,
|
|
|
};
|
|
|
|
|
|
- match Command::new_sidecar("clash") {
|
|
|
- Ok(cmd) => match cmd
|
|
|
- .args(["-d", &app_dir.as_os_str().to_str().unwrap()])
|
|
|
- .spawn()
|
|
|
- {
|
|
|
- Ok((mut rx, _)) => {
|
|
|
- log::info!("Successfully execute clash sidecar");
|
|
|
- payload.controller = Some(read_clash_controller());
|
|
|
-
|
|
|
- tauri::async_runtime::spawn(async move {
|
|
|
- while let Some(event) = rx.recv().await {
|
|
|
- match event {
|
|
|
- CommandEvent::Stdout(line) => log::info!("{}", line),
|
|
|
- CommandEvent::Stderr(err) => log::error!("{}", err),
|
|
|
- _ => {}
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- Err(err) => {
|
|
|
- log::error!(
|
|
|
- "Failed to execute clash sidecar for \"{:?}\"",
|
|
|
- err.to_string()
|
|
|
- );
|
|
|
- payload.status = "error".to_string();
|
|
|
- payload.message = Some(err.to_string());
|
|
|
- }
|
|
|
+ let result = match Command::new_sidecar("clash") {
|
|
|
+ Ok(cmd) => match cmd.args(["-d", app_dir]).spawn() {
|
|
|
+ Ok(res) => Ok(res),
|
|
|
+ Err(err) => Err(err.to_string()),
|
|
|
},
|
|
|
+ Err(err) => Err(err.to_string()),
|
|
|
+ };
|
|
|
+
|
|
|
+ match result {
|
|
|
+ Ok((mut rx, _)) => {
|
|
|
+ log::info!("Successfully execute clash sidecar");
|
|
|
+ payload.controller = Some(read_clash_controller());
|
|
|
+
|
|
|
+ tauri::async_runtime::spawn(async move {
|
|
|
+ while let Some(event) = rx.recv().await {
|
|
|
+ match event {
|
|
|
+ CommandEvent::Stdout(line) => log::info!("{}", line),
|
|
|
+ CommandEvent::Stderr(err) => log::error!("{}", err),
|
|
|
+ _ => {}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
Err(err) => {
|
|
|
- log::error!(
|
|
|
- "Failed to execute clash sidecar for \"{:?}\"",
|
|
|
- err.to_string()
|
|
|
- );
|
|
|
+ log::error!("Failed to execute clash sidecar for \"{}\"", err);
|
|
|
payload.status = "error".to_string();
|
|
|
payload.message = Some(err.to_string());
|
|
|
}
|
|
@@ -119,9 +113,6 @@ pub async fn put_clash_profile(payload: &ClashInfoPayload) -> Result<(), String>
|
|
|
let client = reqwest::Client::new();
|
|
|
match client.put(server).headers(headers).json(&data).send().await {
|
|
|
Ok(_) => Ok(()),
|
|
|
- Err(err) => Err(format!(
|
|
|
- "request failed with status `{}`",
|
|
|
- err.status().unwrap()
|
|
|
- )),
|
|
|
+ Err(err) => Err(format!("request failed with status `{}`", err.to_string())),
|
|
|
}
|
|
|
}
|