This commit is contained in:
@@ -96,9 +96,9 @@ pub(crate) fn find_package_directory(
|
|||||||
let ctx = context::current();
|
let ctx = context::current();
|
||||||
|
|
||||||
// Try package/package pattern first
|
// Try package/package pattern first
|
||||||
let package_dir_pattern1 = parent_dir.join(package).join(package);
|
let package_dir = parent_dir.join(package).join(package);
|
||||||
if ctx.exists(&package_dir_pattern1)? {
|
if ctx.exists(&package_dir)? {
|
||||||
return Ok(package_dir_pattern1);
|
return Ok(package_dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compute origversion from version: remove everything after first '-', after stripping epoch
|
// Compute origversion from version: remove everything after first '-', after stripping epoch
|
||||||
@@ -109,11 +109,53 @@ pub(crate) fn find_package_directory(
|
|||||||
.unwrap_or(version);
|
.unwrap_or(version);
|
||||||
|
|
||||||
// Try package/package-origversion pattern
|
// Try package/package-origversion pattern
|
||||||
let package_dir_pattern2 = parent_dir
|
let package_dir = parent_dir
|
||||||
.join(package)
|
.join(package)
|
||||||
.join(format!("{}-{}", package, origversion));
|
.join(format!("{}-{}", package, origversion));
|
||||||
if ctx.exists(&package_dir_pattern2)? {
|
if ctx.exists(&package_dir)? {
|
||||||
return Ok(package_dir_pattern2);
|
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!(
|
Err(format!(
|
||||||
@@ -174,7 +216,8 @@ mod tests {
|
|||||||
log::info!("Successfully pulled package {}", package);
|
log::info!("Successfully pulled package {}", package);
|
||||||
|
|
||||||
// Change directory to the package directory
|
// 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::debug!("Package directory: {}", cwd.display());
|
||||||
|
|
||||||
log::info!("Starting binary package build...");
|
log::info!("Starting binary package build...");
|
||||||
|
|||||||
Reference in New Issue
Block a user