Skip to content

Commit a3519b0

Browse files
committed
Bootstrap packer config.rs for clean CI checkouts
1 parent 9c16124 commit a3519b0

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

packer/build.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
use std::env;
2+
use std::fs;
3+
use std::path::PathBuf;
4+
5+
fn main() {
6+
let manifest_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR missing");
7+
let src_dir = PathBuf::from(manifest_dir).join("src");
8+
let generated = src_dir.join("config.rs");
9+
let defaults = src_dir.join("config.defaults.rs");
10+
11+
println!("cargo:rerun-if-changed=build.rs");
12+
println!("cargo:rerun-if-changed={}", defaults.display());
13+
println!("cargo:rerun-if-changed={}", generated.display());
14+
15+
if generated.exists() {
16+
return;
17+
}
18+
19+
if !defaults.exists() {
20+
panic!(
21+
"Missing fallback template for config.rs: {}",
22+
defaults.display()
23+
);
24+
}
25+
26+
fs::copy(&defaults, &generated).unwrap_or_else(|error| {
27+
panic!(
28+
"Failed to bootstrap {} from {}: {}",
29+
generated.display(),
30+
defaults.display(),
31+
error
32+
)
33+
});
34+
35+
println!("cargo:warning=Bootstrapped config.rs from config.defaults.rs");
36+
}

packer/src/config.defaults.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// Fallback config used when generated config.rs is absent in clean CI checkout.
2+
// pack.py overwrites src/config.rs with generated key material during packing.
3+
4+
#[inline(always)]
5+
pub fn get_aes_key() -> [u8; 32] {
6+
[0u8; 32]
7+
}

0 commit comments

Comments
 (0)