35 lines
1.6 KiB
Rust
35 lines
1.6 KiB
Rust
// content-graph feature — build.rs integration snippet.
|
|
//
|
|
// Add this block to the implementation's server/build.rs (or as a separate
|
|
// build step) after sourcing the required environment variables.
|
|
//
|
|
// Required .env entries (add to foundation/.env):
|
|
//
|
|
// CONTENT_GRAPH_CONTENT_DIR=site/content
|
|
// CONTENT_GRAPH_NICKEL_SCHEMA_DIR=rustelo/nickel
|
|
// CONTENT_GRAPH_FRAMEWORK_ONTOLOGY=/abs/path/to/rustelo/.ontology/core.ncl
|
|
// CONTENT_GRAPH_IMPL_ONTOLOGY=.ontology/core.ncl
|
|
// CONTENT_GRAPH_FRAMEWORK_ADRS_GLOB=/abs/path/to/rustelo/adrs/adr-*.ncl
|
|
// CONTENT_GRAPH_IMPL_ADRS_GLOB=adrs/adr-*.ncl
|
|
// ONTOREF_NICKEL_IMPORT_PATH=/abs/path/to/ontoref/ontology
|
|
|
|
fn generate_content_graph() {
|
|
use content_graph::build::{codegen, graph_generator::GraphGeneratorConfig};
|
|
|
|
let config = GraphGeneratorConfig::from_env()
|
|
.expect("content-graph: missing required environment variables — see templates/build_rs_snippet.rs");
|
|
|
|
let out_dir = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap());
|
|
|
|
let graph = graph_generator::generate(&config)
|
|
.expect("content-graph: graph generation failed");
|
|
|
|
codegen::write_outputs(&graph, &out_dir)
|
|
.expect("content-graph: codegen write failed");
|
|
|
|
// Invalidate when any ontology or ADR file changes
|
|
println!("cargo:rerun-if-env-changed=CONTENT_GRAPH_CONTENT_DIR");
|
|
println!("cargo:rerun-if-env-changed=ONTOREF_NICKEL_IMPORT_PATH");
|
|
println!("cargo:rerun-if-changed={}", config.framework_ontology.display());
|
|
println!("cargo:rerun-if-changed={}", config.impl_ontology.display());
|
|
}
|