1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use std::process::Command;
pub fn get_erg_version(erg_command: &str) -> Option<String> {
let out = if cfg!(windows) {
Command::new("cmd")
.arg("/C")
.arg(erg_command)
.arg("--version")
.output()
.ok()?
} else {
let exec_command = format!("{erg_command} --version");
Command::new("sh")
.arg("-c")
.arg(exec_command)
.output()
.ok()?
};
let s_version = String::from_utf8(out.stdout).ok()?;
let mut iter = s_version.split(' ').skip(1);
Some(iter.next()?.trim_end().to_string())
}
pub fn env_erg_version() -> Option<String> {
get_erg_version("erg")
}