1fn cache_dir() -> std::path::PathBuf {
4 dirs::cache_dir()
5 .expect("Failed to get cache directory")
6 .join("electron-hook")
7}
8
9fn asar_cache_dir() -> std::path::PathBuf {
10 ensure_dir(cache_dir().join("asar"))
11}
12
13pub fn asar_cache_path(asar_id: &str) -> std::path::PathBuf {
15 asar_cache_dir().join(format!("{asar_id}.asar"))
16}
17
18fn mod_artifacts_dir() -> std::path::PathBuf {
19 ensure_dir(cache_dir().join("mods"))
20}
21
22pub fn mod_artifact_dir(mod_name: &str) -> std::path::PathBuf {
24 mod_artifacts_dir().join(mod_name)
25}
26
27fn data_dir() -> std::path::PathBuf {
28 dirs::data_dir()
29 .expect("Failed to get data directory")
30 .join("electron-hook")
31}
32
33fn data_profiles_dir() -> std::path::PathBuf {
34 ensure_dir(data_dir().join("profiles"))
35}
36
37pub fn data_profile_dir(profile_id: &str) -> std::path::PathBuf {
39 data_profiles_dir().join(profile_id)
40}
41
42pub fn ensure_dir(path: std::path::PathBuf) -> std::path::PathBuf {
44 if !path.exists() {
45 std::fs::create_dir_all(&path)
46 .map_err(|e| format!("Failed to create directory: {e}"))
47 .unwrap();
48 }
49 path
50}