use anyhow::Result;
use patina::environment::Environment;
pub fn validate_environment(env: &Environment) -> Result<Option<Vec<String>>> {
let mut warnings = Vec::new();
if !env.languages.get("rust").is_some_and(|info| info.available) {
warnings.push(
"⚠️ Rust not detected - Patina is built for Rust projects (install via rustup)"
.to_string(),
);
}
let has_docker = env.tools.get("docker").is_some_and(|info| info.available);
let has_podman = env.tools.get("podman").is_some_and(|info| info.available);
if !has_docker && !has_podman {
warnings
.push("⚠️ No container runtime detected (Docker or Podman recommended)".to_string());
}
if !env.tools.get("git").is_some_and(|info| info.available) {
warnings.push("⚠️ Git not detected - version control is essential".to_string());
}
if warnings.is_empty() {
Ok(None)
} else {
Ok(Some(warnings))
}
}