Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions clang-tools-manager/src/downloader/native_packages/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,16 +83,16 @@ pub async fn try_install_package(
for mgr in os_pkg_managers {
log::info!("Trying to install {tool} v{min_version} using {mgr} package manager.");
let pkg_name = mgr.get_package_name(tool);
if mgr.is_installed_package(&pkg_name, Some(min_version)) {
let path =
tool.get_exe_path(&RequestedVersion::Requirement(version_req.clone()))?;
let version = tool.capture_version(&path)?;
if version_req.matches(&version) {
log::info!(
"Found {tool} version matching {version_req} installed via {mgr} package manager."
);
return Ok(Some(ClangVersion { version, path }));
}
if mgr.is_installed_package(&pkg_name, Some(min_version))
&& let Ok(path) =
tool.get_exe_path(&RequestedVersion::Requirement(version_req.clone()))
&& let Ok(version) = tool.capture_version(&path)
&& version_req.matches(&version)
{
log::info!(
"Found {tool} version matching {version_req} installed via {mgr} package manager."
);
return Ok(Some(ClangVersion { version, path }));
} else {
log::info!(
"{mgr} package manager does not have a version of {tool} matching {version_req} installed."
Expand Down
14 changes: 14 additions & 0 deletions clang-tools-manager/src/downloader/native_packages/unix.rs
Original file line number Diff line number Diff line change
Expand Up @@ -127,12 +127,22 @@ impl PackageManager for UnixPackageManager {
}
}
let output = if Self::has_sudo() && !matches!(self, UnixPackageManager::Homebrew) {
log::debug!(
"Running `sudo {} {} {package_id}`",
self.as_str(),
args.join(" ")
);
Command::new("sudo")
.arg(self.as_str())
.args(args)
.arg(package_id.as_str())
.output()?
} else {
log::debug!(
"Running `{} {} {package_id}`",
self.as_str(),
args.join(" ")
);
Command::new(self.as_str())
.args(args)
.arg(package_id.as_str())
Expand All @@ -145,6 +155,10 @@ impl PackageManager for UnixPackageManager {
if matches!(self, UnixPackageManager::Apt)
&& let Some(version) = version
{
log::error!(
"Failed to install {package_id} via apt: {}",
String::from_utf8_lossy(&output.stderr)
);
log::info!(
"trying to install from official LLVM PPA repository (for Debian-based `apt` package manager)"
);
Expand Down
Loading