(
source: &Path,
build: &Path,
stage: &Path,
outputs: &BuildOutputs,
)
| 8537 | } |
| 8538 | |
| 8539 | fn package_promoted_extensions( |
| 8540 | source: &Path, |
| 8541 | build: &Path, |
| 8542 | stage: &Path, |
| 8543 | outputs: &BuildOutputs, |
| 8544 | ) -> Result<Vec<OwnedExtensionPackage>> { |
| 8545 | let mut packages = Vec::new(); |
| 8546 | for extension in extension_catalog::promoted_build_specs()? { |
| 8547 | let extension_stage = stage.join("extensions").join(&extension.sql_name); |
| 8548 | stage_promoted_extension(source, build, &extension, &extension_stage)?; |
| 8549 | let archive_path = Path::new(GENERATED_ASSETS_DIR).join(&extension.archive); |
| 8550 | deterministic_tar_zst(&extension_stage, Path::new(""), &archive_path)?; |
| 8551 | packages.push(OwnedExtensionPackage { |
| 8552 | name: extension.display_name, |
| 8553 | sql_name: extension.sql_name.clone(), |
| 8554 | archive: extension.archive.clone(), |
| 8555 | path: archive_path, |
| 8556 | module_path: if extension.module_file.is_some() { |
| 8557 | Some( |
| 8558 | outputs |
| 8559 | .module_path(&format!("extension:{}", extension.sql_name))? |
| 8560 | .to_path_buf(), |
| 8561 | ) |
| 8562 | } else { |
| 8563 | None |
| 8564 | }, |
| 8565 | native_module: extension.module_file.clone(), |
| 8566 | stable: extension.stable, |
| 8567 | }); |
| 8568 | } |
| 8569 | Ok(packages) |
| 8570 | } |
| 8571 | |
| 8572 | fn stage_promoted_extension( |
| 8573 | source: &Path, |
no test coverage detected