From c059f13e4f01ee9bf0aaeece059a951cd5b6111d Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sat, 8 Nov 2025 15:50:25 +0700 Subject: [PATCH] Query deps for push --- src/bin/repo.rs | 14 +++++++++----- src/cook/tree.rs | 9 +++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/bin/repo.rs b/src/bin/repo.rs index 4ffb6fc1..4b54cfcb 100644 --- a/src/bin/repo.rs +++ b/src/bin/repo.rs @@ -99,7 +99,10 @@ impl CliCommand { *self == CliCommand::Tree || *self == CliCommand::Find } pub fn is_building(&self) -> bool { - *self == CliCommand::Fetch || *self == CliCommand::Cook || *self == CliCommand::Tree + *self == CliCommand::Fetch || *self == CliCommand::Cook + } + pub fn is_pushing(&self) -> bool { + *self == CliCommand::Push || *self == CliCommand::Tree } pub fn is_cleaning(&self) -> bool { *self == CliCommand::Clean || *self == CliCommand::Unfetch @@ -454,7 +457,7 @@ fn parse_args(args: Vec) -> anyhow::Result<(CliConfig, CliCommand, Vec, config: &CliConfig) -> anyhow::Result< recipes.iter().map(|r| (&r.name, r)).collect(); let mut total_size: u64 = 0; let mut visited: HashSet = HashSet::new(); - let num_roots = recipes.len(); + let roots: Vec<&CookRecipe> = recipes.iter().filter(|r| !r.is_deps).collect(); + let num_roots = roots.len(); PUSH_SYSROOT_DIR.set(config.sysroot_dir.clone()).unwrap(); let handle_push_inner = move |package_name: &PackageName, _prefix: &str, @@ -628,7 +632,7 @@ fn handle_push(recipes: &Vec, config: &CliConfig) -> anyhow::Result< } }; if config.with_package_deps { - for (i, root) in recipes.iter().enumerate() { + for (i, root) in roots.iter().enumerate() { walk_tree_entry( &root.name, &recipe_map, @@ -640,7 +644,7 @@ fn handle_push(recipes: &Vec, config: &CliConfig) -> anyhow::Result< )?; } } else { - for (i, root) in recipes.iter().enumerate() { + for (i, root) in roots.iter().enumerate() { let archive_path = config .repo_dir .join(target()) diff --git a/src/cook/tree.rs b/src/cook/tree.rs index 630c6803..1c796488 100644 --- a/src/cook/tree.rs +++ b/src/cook/tree.rs @@ -54,12 +54,9 @@ pub fn walk_tree_entry( }; let package_dir = &cook_recipe.dir; - let pkg_path = create_target_dir(package_dir) - .map_err(|e| anyhow!(e))? - .join("stage.pkgar"); - let pkg_toml = create_target_dir(package_dir) - .map_err(|e| anyhow!(e))? - .join("stage.toml"); + let target_dir = create_target_dir(package_dir).map_err(|e| anyhow!(e))?; + let pkg_path = target_dir.join("stage.pkgar"); + let pkg_toml = target_dir.join("stage.toml"); let deduped = visited.contains(package_name); let entry = match (std::fs::metadata(&pkg_path), deduped) {