use std::process::{Command, Stdio};
pub fn installed() -> bool {
Command::new("dotnet")
.arg("--version")
.stdout(Stdio::null())
.stderr(Stdio::null())
.status()
.map(|s| s.success())
.unwrap_or(false)
}
pub fn version() -> Option<String> {
let o = Command::new("dotnet")
.arg("--version")
.stderr(Stdio::null())
.output()
.ok()?;
if !o.status.success() {
return None;
}
Some(String::from_utf8_lossy(&o.stdout).trim().to_string())
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = installed();
assert!(result, ".NET is not installed");
}
}