get: Use a subfolder

This commit is contained in:
2025-11-26 18:06:51 +01:00
parent c466ad1846
commit e6fb4607c4

View File

@@ -136,10 +136,16 @@ 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<dyn Error>> { pub async fn get(package: &str, _version: &str, series: &str, pocket: &str, _ppa: &str, cwd: Option<&Path>) -> Result<(), Box<dyn Error>> {
let package_info = package_info::get(package, series, pocket).await; 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 Ok(Some(info)) = package_info {
if let Some(ref url) = info.preferred_vcs { if let Some(ref url) = info.preferred_vcs {
clone_repo(url.as_str(), package, cwd)?; clone_repo(url.as_str(), package, Some(&package_dir))?;
fetch_orig_tarball(&info, cwd).await?; fetch_orig_tarball(&info, Some(&package_dir)).await?;
} }
} else { } else {
println!("No VCS URL found for package {}", package); println!("No VCS URL found for package {}", package);
@@ -164,20 +170,22 @@ mod tests {
let package_dir = cwd.join(package); let package_dir = cwd.join(package);
assert!(package_dir.exists(), "Package directory not created"); 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) // Check for orig tarball in package dir
let mut found_tarball_in_parent = false; let mut found_tarball = false;
for entry in std::fs::read_dir(cwd).unwrap() { for entry in std::fs::read_dir(package_dir).unwrap() {
let entry = entry.unwrap(); let entry = entry.unwrap();
let name = entry.file_name().to_string_lossy().to_string(); let name = entry.file_name().to_string_lossy().to_string();
if name.contains(".orig.tar.") { if name.contains(".orig.tar.") {
found_tarball_in_parent = true; found_tarball = true;
break; 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] #[tokio::test]