get: Use a subfolder
This commit is contained in:
26
src/get.rs
26
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<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]
|
||||
|
||||
Reference in New Issue
Block a user