use crate::error::CommandError;
use crate::process::supervise;
use crate::project;
use crate::tool::{Tool, probe, warn_if_unverified};
pub(crate) fn execute() -> Result<(), CommandError> {
let project = project::discover()?;
for tool in [Tool::Node, Tool::Pnpm] {
warn_if_unverified(tool, probe(tool)?);
}
let vite = project
.frontend_root()
.join("node_modules/vite/bin/vite.js");
if !vite.is_file() {
return Err(crate::tool::ToolError::MissingProjectExecutable {
path: vite,
advice: "run `pnpm install --frozen-lockfile` in the frontend directory",
}
.into());
}
supervise(&project)?;
Ok(())
}