envmgr 0.1.1

Dotfiles and CLI environment manager
Documentation
mod environment;
mod global;

pub use environment::{BASE_ENV_NAME, EnvVarsConfig, EnvironmentConfig};
pub use global::GlobalConfig;

pub fn envmgr_config_dir() -> std::path::PathBuf {
    let config_local_dir = dirs::config_local_dir().expect("Could not determine home directory");
    config_local_dir.join("envmgr")
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_envmgr_config_dir_structure() {
        let config_dir = envmgr_config_dir();
        assert!(config_dir.ends_with("envmgr"));
        assert!(config_dir.is_absolute());
    }

    #[test]
    fn test_environment_config_paths() {
        let base_dir = EnvironmentConfig::get_base_env_dir();
        assert!(base_dir.ends_with(BASE_ENV_NAME));

        let env_dir = EnvironmentConfig::get_env_dir_by_key("test");
        assert!(env_dir.ends_with("environments/test"));

        let all_envs_dir = EnvironmentConfig::get_all_envs_dir();
        assert!(all_envs_dir.ends_with("environments"));
    }
}