use crate::Platform;
use crate::cmd::cmd;
use color_eyre::Result;
use std::path::{Path, PathBuf};
pub fn update(path: &Path, check: bool) -> Result<bool> {
if !cmd!([cargo update] ["--manifest-path" (path)] -> bool)? {
return Ok(false);
}
if check && !cmd!([cargo check] ["--manifest-path" (path) "--all-targets"] -> bool)? {
return Ok(false);
}
Ok(true)
}
pub fn locate_project() -> Result<PathBuf> {
let out =
cmd!([cargo "locate-project"] ["--workspace" "--message-format" plain] -> String)?.into();
Ok(out)
}
pub fn host_platform() -> Result<Platform> {
let platform_tuple = cmd!([rustc "--print" "host-tuple"] -> String)?;
Ok(Platform(platform_tuple))
}