From e6fb4607c4ab3a5a453bfb42d86014f3951bbcd3 Mon Sep 17 00:00:00 2001 From: Valentin Haudiquet Date: Wed, 26 Nov 2025 18:06:51 +0100 Subject: [PATCH] get: Use a subfolder --- src/get.rs | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/get.rs b/src/get.rs index 875e7ab..c890a7b 100644 --- a/src/get.rs +++ b/src/get.rs @@ -135,11 +135,17 @@ async fn fetch_orig_tarball(info: &PackageInfo, cwd: Option<&Path>) -> Result<() pub async fn get(package: &str, _version: &str, series: &str, pocket: &str, _ppa: &str, cwd: Option<&Path>) -> Result<(), Box> { let package_info = package_info::get(package, series, pocket).await; - + + let package_dir = if let Some(path) = cwd { + path.join(package) + } else { + Path::new(package).to_path_buf() + }; + if let Ok(Some(info)) = package_info { if let Some(ref url) = info.preferred_vcs { - clone_repo(url.as_str(), package, cwd)?; - fetch_orig_tarball(&info, cwd).await?; + clone_repo(url.as_str(), package, Some(&package_dir))?; + fetch_orig_tarball(&info, Some(&package_dir)).await?; } } else { println!("No VCS URL found for package {}", package); @@ -164,20 +170,22 @@ mod tests { let package_dir = cwd.join(package); assert!(package_dir.exists(), "Package directory not created"); - assert!(package_dir.join(".git").exists(), "Git repo not cloned"); + let git_repo_dir = package_dir.join(package); + assert!(git_repo_dir.exists(), "Package git repo directory not created"); + assert!(git_repo_dir.join(".git").exists(), "Git repo not cloned"); - // Check for orig tarball in parent dir (cwd) - let mut found_tarball_in_parent = false; - for entry in std::fs::read_dir(cwd).unwrap() { + // Check for orig tarball in package dir + let mut found_tarball = false; + for entry in std::fs::read_dir(package_dir).unwrap() { let entry = entry.unwrap(); let name = entry.file_name().to_string_lossy().to_string(); if name.contains(".orig.tar.") { - found_tarball_in_parent = true; + found_tarball = true; break; } } - assert!(found_tarball_in_parent, "Orig tarball not found in parent dir"); + assert!(found_tarball, "Orig tarball not found in package dir"); } #[tokio::test]