devalang_core/config/
ops.rs

1use crate::config::driver::ProjectConfig;
2use std::fs;
3use std::path::Path;
4
5pub fn load_config(path: Option<&Path>) -> Option<ProjectConfig> {
6    let config_path_buf;
7    let config_path = match path {
8        Some(p) => p,
9        None => {
10            config_path_buf = match devalang_utils::path::get_devalang_config_path() {
11                Ok(p) => p,
12                Err(_) => {
13                    return None;
14                }
15            };
16            &config_path_buf
17        }
18    };
19
20    if config_path.exists() {
21        let content = fs::read_to_string(config_path).ok()?;
22        toml::from_str(&content).ok()
23    } else {
24        None
25    }
26}