~/.cache/ IO
[skip ci]
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -7035,8 +7035,10 @@ dependencies = [
|
||||
"glam",
|
||||
"idmap",
|
||||
"idmap-derive",
|
||||
"log",
|
||||
"serde",
|
||||
"wayvr-ipc",
|
||||
"xdg 3.0.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -12,3 +12,5 @@ idmap = { workspace = true, features = ["serde"] }
|
||||
idmap-derive = { workspace = true }
|
||||
wayvr-ipc = { path = "../wayvr-ipc", default-features = false }
|
||||
anyhow = { workspace = true }
|
||||
xdg = "3.0"
|
||||
log = { workspace = true }
|
||||
|
||||
35
wlx-common/src/cache_dir.rs
Normal file
35
wlx-common/src/cache_dir.rs
Normal file
@@ -0,0 +1,35 @@
|
||||
use std::{path::PathBuf, sync::LazyLock};
|
||||
|
||||
const FALLBACK_CACHE_PATH: &str = "/tmp/wayvr_cache";
|
||||
|
||||
static CACHE_ROOT_PATH: LazyLock<PathBuf> = LazyLock::new(|| {
|
||||
if let Some(mut dir) = xdg::BaseDirectories::new().get_cache_home() {
|
||||
dir.push("wayvr");
|
||||
return dir;
|
||||
}
|
||||
|
||||
//Return fallback cache path
|
||||
log::error!("Err: Failed to find cache path, using {FALLBACK_CACHE_PATH}");
|
||||
PathBuf::from(FALLBACK_CACHE_PATH)
|
||||
});
|
||||
|
||||
fn get_cache_root() -> PathBuf {
|
||||
CACHE_ROOT_PATH.clone()
|
||||
}
|
||||
|
||||
fn ensure_dir(cache_root_path: &PathBuf) {
|
||||
let _ = std::fs::create_dir(cache_root_path);
|
||||
}
|
||||
|
||||
pub fn get_data(data_path: &str) -> Option<Vec<u8>> {
|
||||
let mut path = get_cache_root();
|
||||
ensure_dir(&path);
|
||||
path.push(data_path);
|
||||
std::fs::read(path).ok()
|
||||
}
|
||||
|
||||
pub fn set_data(data_path: &str, data: &[u8]) -> std::io::Result<()> {
|
||||
let mut path = get_cache_root();
|
||||
path.push(data_path);
|
||||
std::fs::write(path, data)
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
pub mod astr_containers;
|
||||
pub mod cache_dir;
|
||||
pub mod common;
|
||||
pub mod config;
|
||||
pub mod dash_interface;
|
||||
|
||||
Reference in New Issue
Block a user