From b45e9fb4ab84f0e17ed6db559fa440ebc8fd76fa Mon Sep 17 00:00:00 2001 From: Tw93 Date: Thu, 6 Apr 2023 10:02:05 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96con?= =?UTF-8?q?fig=E7=9A=84=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/Cargo.lock | 21 +++++++++++++++++++++ src-tauri/Cargo.toml | 1 + src-tauri/src/util.rs | 19 +++++-------------- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index b5ade13..fd15f10 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -42,6 +42,7 @@ checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" name = "app" version = "0.1.0" dependencies = [ + "dirs", "home", "image", "serde", @@ -563,6 +564,15 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dirs" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dece029acd3353e3a58ac2e3eb3c8d6c35827a892edc6cc4138ef9c33df46ecd" +dependencies = [ + "dirs-sys", +] + [[package]] name = "dirs-next" version = "2.0.0" @@ -573,6 +583,17 @@ dependencies = [ "dirs-sys-next", ] +[[package]] +name = "dirs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04414300db88f70d74c5ff54e50f9e1d1737d9a5b90f53fcf2e95ca2a9ab554b" +dependencies = [ + "libc", + "redox_users", + "windows-sys 0.45.0", +] + [[package]] name = "dirs-sys-next" version = "0.1.2" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index d1f0489..79c8f3d 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -20,6 +20,7 @@ serde = { version = "1.0.150", features = ["derive"] } tauri = { version = "1.2.1", features = ["api-all", "devtools", "system-tray"] } image = "0.24.5" home = "0.5" +dirs = "5.0" tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev" } [features] diff --git a/src-tauri/src/util.rs b/src-tauri/src/util.rs index 2596e9e..0836386 100644 --- a/src-tauri/src/util.rs +++ b/src-tauri/src/util.rs @@ -1,37 +1,28 @@ use crate::app::config::PakeConfig; use std::path::PathBuf; use tauri::Config; +use dirs::config_dir; pub fn get_pake_config() -> (PakeConfig, Config) { let pake_config: PakeConfig = - serde_json::from_str(include_str!("../pake.json")).expect("failed to parse pake config"); + serde_json::from_str(include_str!("../pake.json")).expect("Failed to parse pake config"); let tauri_config: Config = serde_json::from_str(include_str!("../tauri.conf.json")) - .expect("failed to parse tauri config"); + .expect("Failed to parse tauri config"); (pake_config, tauri_config) } pub fn get_data_dir(_tauri_config: Config) -> PathBuf { - #[cfg(any(target_os = "linux", target_os = "windows"))] { let package_name = _tauri_config.package.product_name.unwrap(); - let home_dir = home::home_dir().expect("Error, can't found your home dir!!"); - - let data_dir = match cfg!(target_os = "windows") { - true => home_dir.join("AppData").join("Roaming").join(package_name), - false => home_dir.join(".config").join(package_name), - }; + let data_dir = config_dir().expect("Failed to get data dirname").join(package_name); if !data_dir.exists() { std::fs::create_dir(&data_dir) - .unwrap_or_else(|_| panic!("can't create dir {}", data_dir.display())); + .unwrap_or_else(|_| panic!("Can't create dir {}", data_dir.display())); } data_dir } - #[cfg(target_os = "macos")] - { - PathBuf::new() - } }