From 91c812a530ccf189d1a6b1a83eb39a9eef7a2617 Mon Sep 17 00:00:00 2001 From: Valentin Haudiquet Date: Sun, 11 Jan 2026 20:43:01 +0100 Subject: [PATCH] pull: allow to force pull from archive --- src/deb/mod.rs | 2 +- src/main.rs | 2 +- src/pull.rs | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/deb/mod.rs b/src/deb/mod.rs index 6e3015c..16275c4 100644 --- a/src/deb/mod.rs +++ b/src/deb/mod.rs @@ -129,7 +129,7 @@ mod tests { let package_info = crate::package_info::lookup(package, None, Some(series), "", dist, None) .await .expect("Cannot lookup package information"); - crate::pull::pull(&package_info, Some(cwd), None) + crate::pull::pull(&package_info, Some(cwd), None, true) .await .expect("Cannot pull package"); log::info!("Successfully pulled package {}", package); diff --git a/src/main.rs b/src/main.rs index f137dd4..631e91e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -111,7 +111,7 @@ fn main() { Some(&progress_callback), ) .await?; - pkh::pull::pull(&package_info, None, Some(&progress_callback)).await + pkh::pull::pull(&package_info, None, Some(&progress_callback), false).await }) { pb.finish_and_clear(); error!("{}", e); diff --git a/src/pull.rs b/src/pull.rs index cfbaa1e..06290ca 100644 --- a/src/pull.rs +++ b/src/pull.rs @@ -341,6 +341,7 @@ pub async fn pull( package_info: &PackageInfo, cwd: Option<&Path>, progress: ProgressCallback<'_>, + force_archive: bool, ) -> Result<(), Box> { let package = &package_info.stanza.package; let series = &package_info.series; @@ -351,7 +352,7 @@ pub async fn pull( }; /* Fetch the package: either via git (preferred VCS) or the archive */ - if let Some(ref url) = package_info.preferred_vcs { + if let Some(ref url) = package_info.preferred_vcs && !force_archive { // We have found a preferred VCS (git repository) for the package, so // we fetch the package from that repo. @@ -441,7 +442,7 @@ mod tests { let info = crate::package_info::lookup(package, None, series, "", dist, None) .await .unwrap(); - pull(&info, Some(cwd), None).await.unwrap(); + pull(&info, Some(cwd), None, false).await.unwrap(); let package_dir = cwd.join(package); assert!(package_dir.exists());