1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
use std; use std::path::PathBuf; use crate::env_dirs; pub fn get_app_config_dir_create() -> Result<PathBuf, String> { let config_dir = get_app_config_dir()?; std::fs::create_dir_all(&config_dir).map_err( |e| format!("{}", e), )?; Ok(config_dir) } pub fn get_app_config_dir() -> Result<PathBuf, String> { let mut config_dir = get_xdg_config_dir()?; config_dir.push("nvim-gtk"); Ok(config_dir) } fn get_xdg_config_dir() -> Result<PathBuf, String> { if let Ok(config_path) = std::env::var("XDG_CONFIG_HOME") { return Ok(PathBuf::from(config_path)); } let mut home_dir = env_dirs::home_dir().ok_or( "Impossible to get your home dir!", )?; home_dir.push(".config"); Ok(home_dir) }