nvim_gtk/
dirs.rs

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