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