Fix package log

This commit is contained in:
Wildan M 2025-10-25 12:17:11 +07:00
parent be2a4ddd0a
commit d91f0eb8d5
3 changed files with 20 additions and 2 deletions

View File

@ -44,7 +44,7 @@ fn cook(
) )
.map_err(|err| format!("failed to build: {}", err))?; .map_err(|err| format!("failed to build: {}", err))?;
package(&stage_dir, &target_dir, name, recipe, &auto_deps) package(&stage_dir, &target_dir, name, recipe, &auto_deps, &None)
.map_err(|err| format!("failed to package: {}", err))?; .map_err(|err| format!("failed to package: {}", err))?;
Ok(()) Ok(())

View File

@ -314,6 +314,7 @@ fn handle_cook(
&recipe.name, &recipe.name,
&recipe.recipe, &recipe.recipe,
&auto_deps, &auto_deps,
logger,
) )
.map_err(|err| anyhow!("failed to package: {:?}", err))?; .map_err(|err| anyhow!("failed to package: {:?}", err))?;

View File

@ -7,12 +7,28 @@ use crate::{
recipe::{BuildKind, Recipe}, recipe::{BuildKind, Recipe},
}; };
macro_rules! log_warn {
($logger:expr, $($arg:tt)+) => {
use std::io::Write;
if $logger.is_some() {
let _ = $logger.as_ref().unwrap().1.try_clone().unwrap().write(
format!($($arg)+)
.as_bytes(),
);
} else {
eprintln!($($arg)+);
}
};
}
pub fn package( pub fn package(
stage_dir: &Path, stage_dir: &Path,
target_dir: &Path, target_dir: &Path,
name: &PackageName, name: &PackageName,
recipe: &Recipe, recipe: &Recipe,
auto_deps: &BTreeSet<PackageName>, auto_deps: &BTreeSet<PackageName>,
logger: &Stdout,
) -> Result<(), String> { ) -> Result<(), String> {
if recipe.build.kind == BuildKind::None { if recipe.build.kind == BuildKind::None {
// metapackages don't have stage dir // metapackages don't have stage dir
@ -42,7 +58,8 @@ pub fn package(
if package_file.is_file() { if package_file.is_file() {
let stage_modified = modified_dir(stage_dir)?; let stage_modified = modified_dir(stage_dir)?;
if modified(&package_file)? < stage_modified { if modified(&package_file)? < stage_modified {
eprintln!( log_warn!(
logger,
"DEBUG: '{}' newer than '{}'", "DEBUG: '{}' newer than '{}'",
stage_dir.display(), stage_dir.display(),
package_file.display() package_file.display()