1 use std::path::{Path, PathBuf};
2 use std::process::{Command, Stdio};
4 pub(crate) fn get_host_triple() -> String {
6 Command::new("rustc").stderr(Stdio::inherit()).args(&["-vV"]).output().unwrap().stdout;
7 String::from_utf8(version_info)
11 .find(|line| line.starts_with("host"))
20 pub(crate) fn get_rustc_path() -> PathBuf {
21 let rustc_path = Command::new("rustup")
22 .stderr(Stdio::inherit())
23 .args(&["which", "rustc"])
27 Path::new(String::from_utf8(rustc_path).unwrap().trim()).to_owned()
30 pub(crate) fn get_default_sysroot() -> PathBuf {
31 let default_sysroot = Command::new("rustc")
32 .stderr(Stdio::inherit())
33 .args(&["--print", "sysroot"])
37 Path::new(String::from_utf8(default_sysroot).unwrap().trim()).to_owned()
40 pub(crate) fn get_file_name(crate_name: &str, crate_type: &str) -> String {
41 let file_name = Command::new("rustc")
42 .stderr(Stdio::inherit())
55 let file_name = String::from_utf8(file_name).unwrap().trim().to_owned();
56 assert!(!file_name.contains('\n'));
57 assert!(file_name.contains(crate_name));