This commit is contained in:
@@ -96,9 +96,9 @@ pub(crate) fn find_package_directory(
|
||||
let ctx = context::current();
|
||||
|
||||
// Try package/package pattern first
|
||||
let package_dir_pattern1 = parent_dir.join(package).join(package);
|
||||
if ctx.exists(&package_dir_pattern1)? {
|
||||
return Ok(package_dir_pattern1);
|
||||
let package_dir = parent_dir.join(package).join(package);
|
||||
if ctx.exists(&package_dir)? {
|
||||
return Ok(package_dir);
|
||||
}
|
||||
|
||||
// Compute origversion from version: remove everything after first '-', after stripping epoch
|
||||
@@ -109,11 +109,53 @@ pub(crate) fn find_package_directory(
|
||||
.unwrap_or(version);
|
||||
|
||||
// Try package/package-origversion pattern
|
||||
let package_dir_pattern2 = parent_dir
|
||||
let package_dir = parent_dir
|
||||
.join(package)
|
||||
.join(format!("{}-{}", package, origversion));
|
||||
if ctx.exists(&package_dir_pattern2)? {
|
||||
return Ok(package_dir_pattern2);
|
||||
if ctx.exists(&package_dir)? {
|
||||
return Ok(package_dir);
|
||||
}
|
||||
|
||||
// Try 'package' only
|
||||
let package_dir = parent_dir.join(package);
|
||||
if ctx.exists(&package_dir)? {
|
||||
return Ok(package_dir);
|
||||
}
|
||||
|
||||
// Try package-origversion only
|
||||
let package_dir = parent_dir.join(format!("{}-{}", package, origversion));
|
||||
if ctx.exists(&package_dir)? {
|
||||
return Ok(package_dir);
|
||||
}
|
||||
|
||||
// List all directories under 'package/' and log them
|
||||
let package_parent = parent_dir;
|
||||
if ctx.exists(package_parent)? {
|
||||
log::debug!(
|
||||
"Listing all directories under '{}':",
|
||||
package_parent.display()
|
||||
);
|
||||
let entries = ctx.list_files(package_parent)?;
|
||||
let mut found_dirs = Vec::new();
|
||||
for entry in entries {
|
||||
if entry.is_dir() {
|
||||
if let Some(file_name) = entry.file_name() {
|
||||
found_dirs.push(file_name.to_string_lossy().into_owned());
|
||||
}
|
||||
log::debug!(" - {}", entry.display());
|
||||
}
|
||||
}
|
||||
|
||||
// If we found directories but none matched our patterns, provide helpful error
|
||||
if !found_dirs.is_empty() {
|
||||
return Err(format!(
|
||||
"Could not find package directory for {} in {}. Found directories: {}",
|
||||
package,
|
||||
parent_dir.display(),
|
||||
found_dirs.join(", ")
|
||||
)
|
||||
.into());
|
||||
}
|
||||
}
|
||||
|
||||
Err(format!(
|
||||
@@ -174,7 +216,8 @@ mod tests {
|
||||
log::info!("Successfully pulled package {}", package);
|
||||
|
||||
// Change directory to the package directory
|
||||
let cwd = crate::deb::find_package_directory(cwd, package, &package_info.stanza.version).expect("Cannot find package directory");
|
||||
let cwd = crate::deb::find_package_directory(cwd, package, &package_info.stanza.version)
|
||||
.expect("Cannot find package directory");
|
||||
log::debug!("Package directory: {}", cwd.display());
|
||||
|
||||
log::info!("Starting binary package build...");
|
||||
|
||||
Reference in New Issue
Block a user