use std::{fs::DirBuilder, path::PathBuf}; use tauri::{path::PathResolver, AppHandle, Manager, Runtime}; fn ensure_dir(resolver: &PathResolver) -> anyhow::Result { 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(app_handle: &AppHandle) -> anyhow::Result { 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)) }