estim_control/src-tauri/src/config_db.rs
2025-02-26 05:39:36 +08:00

24 lines
894 B
Rust

use std::{fs::DirBuilder, path::PathBuf};
use tauri::{path::PathResolver, AppHandle, Manager, Runtime};
fn ensure_dir<R: Runtime>(resolver: &PathResolver<R>) -> anyhow::Result<PathBuf> {
let config_dir = resolver
.local_data_dir()
.map_err(|e| anyhow::anyhow!("Unable to get local data directory: {}", e))?;
if !config_dir.exists() {
let mut dir_creator = DirBuilder::new();
dir_creator
.recursive(true)
.create(&config_dir)
.map_err(|e| anyhow::anyhow!("Unable to create config directory: {}", e))?;
}
Ok(config_dir)
}
pub fn open_config_db<R: Runtime>(app_handle: &AppHandle<R>) -> anyhow::Result<sled::Db> {
let config_dir = ensure_dir(app_handle.path())?;
let db_path = config_dir.join("conf.db");
sled::open(&db_path).map_err(|e| anyhow::anyhow!("Unable to open config database: {}", e))
}