fix: Change PID file path

#99
This commit is contained in:
MystiPanda 2023-12-08 11:59:40 +08:00
parent a036597f5f
commit c5855119d8

View File

@ -15,6 +15,7 @@ static VERGE_CONFIG: &str = "verge.yaml";
static PROFILE_YAML: &str = "profiles.yaml";
static mut RESOURCE_DIR: Option<PathBuf> = None;
static mut APP_HOME_DIR: Option<PathBuf> = None;
/// portable flag
#[allow(unused)]
@ -42,28 +43,27 @@ pub unsafe fn init_portable_flag() -> Result<()> {
/// get the verge app home dir
pub fn app_home_dir() -> Result<PathBuf> {
#[cfg(target_os = "windows")]
unsafe {
use tauri::utils::platform::current_exe;
if !PORTABLE_FLAG {
Ok(data_dir()
.ok_or(anyhow::anyhow!("failed to get app home dir"))?
.join(APP_ID))
} else {
let app_exe = current_exe()?;
let app_exe = dunce::canonicalize(app_exe)?;
let app_dir = app_exe
.parent()
.ok_or(anyhow::anyhow!("failed to get the portable app dir"))?;
Ok(PathBuf::from(app_dir).join(".config").join(APP_ID))
}
}
#[cfg(not(target_os = "windows"))]
Ok(data_dir()
let portable_home_dir = PathBuf::from(app_dir).join(".config").join(APP_ID);
let home_dir = data_dir()
.ok_or(anyhow::anyhow!("failed to get app home dir"))?
.join(APP_ID))
.join(APP_ID);
unsafe {
if PORTABLE_FLAG {
APP_HOME_DIR = Some(portable_home_dir.clone());
Ok(portable_home_dir)
} else {
APP_HOME_DIR = Some(home_dir.clone());
Ok(home_dir)
}
}
}
/// get the resources dir
@ -116,9 +116,9 @@ pub fn app_res_dir() -> Result<PathBuf> {
pub fn clash_pid_path() -> Result<PathBuf> {
unsafe {
Ok(RESOURCE_DIR
Ok(APP_HOME_DIR
.clone()
.ok_or(anyhow::anyhow!("failed to get the resource dir"))?
.ok_or(anyhow::anyhow!("failed to get the app home dir"))?
.join("clash.pid"))
}
}