use std::path::PathBuf;
use std::sync::{OnceLock, RwLock};
fn paths() -> &'static RwLock<Vec<PathBuf>> {
static G: OnceLock<RwLock<Vec<PathBuf>>> = OnceLock::new();
G.get_or_init(|| RwLock::new(Vec::new()))
}
pub fn record_env_path(path: PathBuf) {
let mut g = paths().write().expect("BOOTSTRAP_ENV_PATHS poisoned");
if !g.iter().any(|p| p == &path) {
g.push(path);
}
}
pub fn env_paths() -> Vec<PathBuf> {
paths()
.read()
.expect("BOOTSTRAP_ENV_PATHS poisoned")
.clone()
}
pub fn reset_env_paths() {
paths()
.write()
.expect("BOOTSTRAP_ENV_PATHS poisoned")
.clear();
}