use std::{path::Path, process::Command};
pub(crate) fn check_executable_help(executable: &Path) -> anyhow::Result<()> {
let output = Command::new(executable)
.arg("--help")
.env_clear()
.output()
.map_err(|err| {
anyhow::anyhow!(
"{} process failed to complete: '{}'",
executable.display(),
err
)
})?;
if !output.status.success() {
return Err(anyhow::anyhow!(
"{} unexpectedly exited a non-zero status code: '{:#?}'",
executable.display(),
output
));
}
Ok(())
}
pub(crate) fn is_apple_target() -> bool {
std::env::var("TARGET")
.map(|target| target.contains("apple"))
.unwrap_or_else(|_| false)
}
pub(crate) fn is_windows_target() -> bool {
std::env::var("TARGET")
.map(|target| target.contains("windows"))
.unwrap_or_else(|_| false)
}
pub(crate) fn is_emscripten_target() -> bool {
std::env::var("CARGO_CFG_TARGET_OS") == Ok("emscripten".to_owned())
}