atproto blogging
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}