deb: consider package directories with version
Some checks failed
CI / build (push) Failing after 1m6s
Some checks failed
CI / build (push) Failing after 1m6s
This commit is contained in:
@@ -85,6 +85,45 @@ pub fn build_binary_package(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Find the current package directory by trying both patterns:
|
||||
/// - package/package
|
||||
/// - package/package-origversion
|
||||
pub(crate) fn find_package_directory(
|
||||
parent_dir: &Path,
|
||||
package: &str,
|
||||
version: &str,
|
||||
) -> Result<PathBuf, Box<dyn Error>> {
|
||||
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);
|
||||
}
|
||||
|
||||
// Compute origversion from version: remove everything after first '-', after stripping epoch
|
||||
let version_without_epoch = version.split_once(':').map(|(_, v)| v).unwrap_or(version);
|
||||
let origversion = version_without_epoch
|
||||
.split_once('-')
|
||||
.map(|(v, _)| v)
|
||||
.unwrap_or(version);
|
||||
|
||||
// Try package/package-origversion pattern
|
||||
let package_dir_pattern2 = parent_dir
|
||||
.join(package)
|
||||
.join(format!("{}-{}", package, origversion));
|
||||
if ctx.exists(&package_dir_pattern2)? {
|
||||
return Ok(package_dir_pattern2);
|
||||
}
|
||||
|
||||
Err(format!(
|
||||
"Could not find package directory for {} in {}",
|
||||
package,
|
||||
parent_dir.display()
|
||||
)
|
||||
.into())
|
||||
}
|
||||
|
||||
fn find_dsc_file(
|
||||
build_root: &str,
|
||||
package: &str,
|
||||
@@ -135,7 +174,7 @@ mod tests {
|
||||
log::info!("Successfully pulled package {}", package);
|
||||
|
||||
// Change directory to the package directory
|
||||
let cwd = cwd.join(package).join(package);
|
||||
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