diff --git a/src/genshin/consts.rs b/src/genshin/consts.rs index 19abb3e..91117e7 100644 --- a/src/genshin/consts.rs +++ b/src/genshin/consts.rs @@ -2,9 +2,13 @@ use std::path::PathBuf; /// Get default launcher dir path /// -/// `$HOME/.local/share/anime-game-launcher` +/// If `LAUNCHER_FOLDER` variable is set, then its value will be returned. Otherwise return `$HOME/.local/share/anime-game-launcher` #[inline] pub fn launcher_dir() -> anyhow::Result { + if let Ok(folder) = std::env::var("LAUNCHER_FOLDER") { + return Ok(folder.into()); + } + Ok(std::env::var("XDG_DATA_HOME") .or_else(|_| std::env::var("HOME").map(|home| home + "/.local/share")) .map(|home| PathBuf::from(home).join("anime-game-launcher"))?) diff --git a/src/honkai/consts.rs b/src/honkai/consts.rs index 2e5d281..a68c0e5 100644 --- a/src/honkai/consts.rs +++ b/src/honkai/consts.rs @@ -2,9 +2,13 @@ use std::path::PathBuf; /// Get default launcher dir path /// -/// `$HOME/.local/share/honkers-launcher` +/// If `LAUNCHER_FOLDER` variable is set, then its value will be returned. Otherwise return `$HOME/.local/share/honkers-launcher` #[inline] pub fn launcher_dir() -> anyhow::Result { + if let Ok(folder) = std::env::var("LAUNCHER_FOLDER") { + return Ok(folder.into()); + } + Ok(std::env::var("XDG_DATA_HOME") .or_else(|_| std::env::var("HOME").map(|home| home + "/.local/share")) .map(|home| PathBuf::from(home).join("honkers-launcher"))?) diff --git a/src/star_rail/consts.rs b/src/star_rail/consts.rs index ed40555..e9bcfaa 100644 --- a/src/star_rail/consts.rs +++ b/src/star_rail/consts.rs @@ -2,9 +2,13 @@ use std::path::PathBuf; /// Get default launcher dir path /// -/// `$HOME/.local/share/honkers-railway-launcher` +/// If `LAUNCHER_FOLDER` variable is set, then its value will be returned. Otherwise return `$HOME/.local/share/honkers-railway-launcher` #[inline] pub fn launcher_dir() -> anyhow::Result { + if let Ok(folder) = std::env::var("LAUNCHER_FOLDER") { + return Ok(folder.into()); + } + Ok(std::env::var("XDG_DATA_HOME") .or_else(|_| std::env::var("HOME").map(|home| home + "/.local/share")) .map(|home| PathBuf::from(home).join("honkers-railway-launcher"))?)