use crate::args::PackageManager;
use crate::error::Result;
use colored::*;
use std::path::Path;
use std::process::Command;
pub fn install_dependencies(project_path: &Path, package_manager: &PackageManager) -> Result<()> {
let pm_str = package_manager.as_str();
println!("\n{}", format!("📦 Installing dependencies with {}...", pm_str).yellow());
let status = Command::new(pm_str)
.arg("install")
.current_dir(project_path)
.status()?;
if !status.success() {
return Err(anyhow::anyhow!("{} install failed", pm_str));
}
Ok(())
}
pub fn detect_package_manager() -> PackageManager {
if Command::new("bun").arg("--version").output().is_ok() {
PackageManager::Bun
} else {
PackageManager::Npm
}
}