|
|
|
@ -4,7 +4,6 @@ use std::{
|
|
|
|
|
sync::Arc,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
use alpm::SigLevel;
|
|
|
|
|
use aur_rpc::PackageInfo;
|
|
|
|
|
use crossterm::style::Stylize;
|
|
|
|
|
use futures::future;
|
|
|
|
@ -24,6 +23,7 @@ use crate::{
|
|
|
|
|
pager::PagerBuilder,
|
|
|
|
|
},
|
|
|
|
|
internal::{
|
|
|
|
|
alpm::{Alpm, PackageFrom},
|
|
|
|
|
error::{AppError, AppResult},
|
|
|
|
|
utils::{get_cache_dir, wrap_text},
|
|
|
|
|
},
|
|
|
|
@ -205,25 +205,21 @@ async fn build_package(
|
|
|
|
|
tracing::debug!("Archives: {archives:?}");
|
|
|
|
|
|
|
|
|
|
let mut pkgs_produced: HashMap<String, PathBuf> = HashMap::new();
|
|
|
|
|
let alpm = crate::internal::alpm::get_handler()?;
|
|
|
|
|
let alpm = Alpm::new()?;
|
|
|
|
|
|
|
|
|
|
for ar in archives {
|
|
|
|
|
let pkg = alpm
|
|
|
|
|
.pkg_load(ar.to_str().unwrap(), true, SigLevel::NONE)
|
|
|
|
|
.map_err(|e| AppError::Other(e.to_string()))?;
|
|
|
|
|
let pkg = alpm.load(PackageFrom::File(ar.clone()))?;
|
|
|
|
|
let name = pkg.name().to_owned();
|
|
|
|
|
pkgs_produced.insert(name, ar);
|
|
|
|
|
}
|
|
|
|
|
tracing::debug!("Produced packages: {pkgs_produced:#?}");
|
|
|
|
|
|
|
|
|
|
let pkg_to_install = pkgs_produced
|
|
|
|
|
.get(&ctx.package.metadata.name)
|
|
|
|
|
.ok_or_else(|| {
|
|
|
|
|
AppError::Other(format!(
|
|
|
|
|
"Could not find package {} in produced packages",
|
|
|
|
|
pkg_name.clone()
|
|
|
|
|
))
|
|
|
|
|
})?;
|
|
|
|
|
let pkg_to_install = pkgs_produced.get(pkg_name).ok_or_else(|| {
|
|
|
|
|
AppError::Other(format!(
|
|
|
|
|
"Could not find package {} in produced packages",
|
|
|
|
|
pkg_name.clone()
|
|
|
|
|
))
|
|
|
|
|
})?;
|
|
|
|
|
|
|
|
|
|
pb.finish_with_message(format!("{}: {}", pkg_name.clone().bold(), "Built!".green()));
|
|
|
|
|
ctx.step = BuildStep::Install(PackageArchives(vec![pkg_to_install.to_path_buf()]));
|
|
|
|
|