at main 37 lines 1.1 kB view raw
1use dotenvy::dotenv; 2use std::env; 3use std::fs::File; 4use std::io::Write; 5 6fn main() { 7 println!("cargo:rerun-if-changed=.env"); 8 let dest_path = "./src/env.rs"; 9 let mut f = File::create(&dest_path).unwrap(); 10 11 dotenv().ok(); 12 f.write_all(b"// This file is automatically generated by build.rs\n\n") 13 .unwrap(); 14 15 // Track which keys we've written 16 let mut written_keys = std::collections::HashSet::new(); 17 18 for (key, value) in env::vars() { 19 if key.starts_with("WEAVER_") { 20 let line = format!( 21 "#[allow(unused)]\npub const {}: &'static str = \"{}\";\n", 22 key, 23 value.replace("\"", "\\\"") 24 ); 25 f.write_all(line.as_bytes()).unwrap(); 26 written_keys.insert(key); 27 } 28 } 29 30 // Ensure index-related constants are always defined (even if empty) 31 for key in ["WEAVER_INDEXER_URL", "WEAVER_INDEXER_DID"] { 32 if !written_keys.contains(key) { 33 let line = format!("#[allow(unused)]\npub const {}: &'static str = \"\";\n", key); 34 f.write_all(line.as_bytes()).unwrap(); 35 } 36 } 37}