1use dirs::home_dir;
2use std::{env::var, path::PathBuf, sync::LazyLock};
3
4pub const DEFAULT_CONFIG_DIR: LazyLock<PathBuf> = LazyLock::new(|| {
5 var("ODICT_CONFIG_DIR")
6 .map(|d| PathBuf::from(d))
7 .ok()
8 .unwrap_or_else(|| {
9 home_dir()
10 .expect("Failed to get home directory")
11 .join(".odict")
12 })
13});
14
15#[cfg(test)]
16mod test {
17 use dirs::home_dir;
18
19 use crate::config::DEFAULT_CONFIG_DIR;
20
21 #[test]
22 fn test_get_config_dir() {
23 let home_dir = home_dir().expect("Failed to get home directory");
24 let expected = home_dir.join(".odict");
25
26 assert_eq!(*DEFAULT_CONFIG_DIR, expected);
27 }
28}