Mountain/ProcessManagement/NodeResolver/QueryNodeVersion.rs
1
2//! Run `node --version` on the resolved binary and return its reported
3//! version string (e.g. `v24.8.0`). Returns `None` when the binary cannot be
4//! spawned (bare `node` fallback under a misconfigured PATH) or when it exits
5//! non-zero. No timeout - `node --version` never blocks.
6
7use std::path::Path;
8
9pub fn Fn(NodePath:&Path) -> Option<String> {
10 let Output = std::process::Command::new(NodePath).arg("--version").output().ok()?;
11
12 if !Output.status.success() {
13 return None;
14 }
15
16 let Reported = String::from_utf8(Output.stdout).ok()?.trim().to_string();
17
18 if Reported.is_empty() { None } else { Some(Reported) }
19}