use std::fs;
use std::io::{self, Write};
use std::path::Path;
use sandbox_agent::router::ApiDoc;
use utoipa::OpenApi;
fn main() {
emit_stdout("cargo:rerun-if-changed=../sandbox-agent/src/router.rs");
emit_stdout("cargo:rerun-if-changed=../sandbox-agent/src/lib.rs");
let out_dir = std::env::var("OUT_DIR").expect("OUT_DIR not set");
let out_path = Path::new(&out_dir).join("openapi.json");
let openapi = ApiDoc::openapi();
let json = serde_json::to_string_pretty(&openapi).expect("Failed to serialize OpenAPI spec");
fs::write(&out_path, json).expect("Failed to write OpenAPI spec");
emit_stdout(&format!(
"cargo:warning=Generated OpenAPI spec at {}",
out_path.display()
));
}
fn emit_stdout(message: &str) {
let mut out = io::stdout();
let _ = out.write_all(message.as_bytes());
let _ = out.write_all(b"\n");
let _ = out.flush();
}