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