MCPcopy Create free account
hub / github.com/f0rr0/oliphaunt / build_specs

Function build_specs

xtask/src/extension_catalog.rs:275–311  ·  view source on GitHub ↗
(catalog: &ExtensionCatalog)

Source from the content-addressed store, hash-verified

273}
274
275fn build_specs(catalog: &ExtensionCatalog) -> Result<Vec<PromotedExtensionBuildSpec>> {
276 let mut specs = Vec::new();
277 for extension in catalog
278 .extensions
279 .iter()
280 .filter(|extension| extension.promotion.requested)
281 {
282 let archive = extension
283 .promotion
284 .archive
285 .clone()
286 .unwrap_or_else(|| format!("extensions/{}.tar.zst", extension.sql_name));
287 specs.push(PromotedExtensionBuildSpec {
288 id: extension.id.clone(),
289 display_name: extension.display_name.clone(),
290 sql_name: extension.sql_name.clone(),
291 source_kind: extension.source_kind.clone(),
292 build_kind: build_kind(extension).to_owned(),
293 source_dir: extension_source_dir(extension),
294 make_args: pgxs_make_args(extension),
295 contrib_dir: (extension.source_kind == "postgres-contrib")
296 .then(|| extension_contrib_dir_name(&extension.id)),
297 module_file: extension.native_module_file.clone(),
298 archive,
299 control_file: extension.control_file.clone(),
300 stable: extension.promotion.stable,
301 dependencies: extension.dependencies.clone(),
302 native_dependencies: extension.native_dependencies.clone(),
303 load_order: extension.load_order.clone(),
304 lifecycle: extension.lifecycle.clone(),
305 smoke: extension.smoke.clone(),
306 tests: extension.tests.clone(),
307 });
308 }
309 specs.sort_by(|left, right| left.sql_name.cmp(&right.sql_name));
310 Ok(specs)
311}
312
313#[derive(Debug, Clone)]
314pub(crate) struct PromotedExtensionBuildSpec {

Callers 2

promoted_build_specsFunction · 0.85
build_planFunction · 0.85

Calls 6

build_kindFunction · 0.85
extension_source_dirFunction · 0.85
pgxs_make_argsFunction · 0.85
iterMethod · 0.80
pushMethod · 0.80

Tested by

no test coverage detected