use crate::error::DevbrainError;
use std::env;
use std::path::PathBuf;
pub const DEFAULT_DB_PATH: &str = "~/.devbrain/db.json";
#[derive(Clone)]
pub struct Config {
pub db_path: PathBuf,
}
pub fn load_config() -> Result<Config, DevbrainError> {
if let Ok(path) = env::var("DEVBRAIN_DB_PATH") {
return Ok(Config {
db_path: PathBuf::from(path),
});
}
let home = env::var_os("HOME")
.map(PathBuf::from)
.ok_or_else(|| DevbrainError::Other("HOME directory not found".to_string()))?;
let db_path = if let Some(stripped) = DEFAULT_DB_PATH.strip_prefix("~/") {
home.join(stripped)
} else {
PathBuf::from(DEFAULT_DB_PATH)
};
Ok(Config { db_path })
}