use dotenvy::dotenv; use std::env; use std::fs::File; use std::io::Write; fn main() { println!("cargo:rerun-if-changed=.env"); let dest_path = "./src/env.rs"; let mut f = File::create(&dest_path).unwrap(); dotenv().ok(); f.write_all(b"// This file is automatically generated by build.rs\n\n") .unwrap(); // Track which keys we've written let mut written_keys = std::collections::HashSet::new(); for (key, value) in env::vars() { if key.starts_with("WEAVER_") { let line = format!( "#[allow(unused)]\npub const {}: &'static str = \"{}\";\n", key, value.replace("\"", "\\\"") ); f.write_all(line.as_bytes()).unwrap(); written_keys.insert(key); } } // Ensure index-related constants are always defined (even if empty) for key in ["WEAVER_INDEXER_URL", "WEAVER_INDEXER_DID"] { if !written_keys.contains(key) { let line = format!("#[allow(unused)]\npub const {}: &'static str = \"\";\n", key); f.write_all(line.as_bytes()).unwrap(); } } }