pub fn default_search_paths() -> Vec<std::path::PathBuf> {
let mut search_paths = Vec::new();
if let Some(global_root_dir) = global_root_dir() {
search_paths.push(global_root_dir);
}
let local_dir = std::path::PathBuf::from("./crates/std/lib");
if local_dir.exists() {
search_paths.push(local_dir);
}
if let Some(root_dir) = option_env!("STDLIB_PATH") {
search_paths.push(root_dir.into());
}
search_paths
}
pub fn config_dir() -> Option<std::path::PathBuf> {
dirs::config_dir().map(|dir| dir.join("microcad"))
}
pub fn global_root_dir() -> Option<std::path::PathBuf> {
config_dir().map(|dir| dir.join("lib"))
}