get: Use a subfolder

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

View File

@@ -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<dyn Error>> {
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]