2022-02-08 16:59:38 +00:00
|
|
|
// Copyright 2022 Oxide Computer Company
|
2021-10-17 17:40:22 +00:00
|
|
|
|
|
|
|
use std::{
|
|
|
|
env,
|
|
|
|
fs::{self, File},
|
|
|
|
path::Path,
|
|
|
|
};
|
|
|
|
|
|
|
|
fn main() {
|
2022-02-08 16:59:38 +00:00
|
|
|
let src = "../sample_openapi/keeper.json";
|
|
|
|
println!("cargo:rerun-if-changed={}", src);
|
|
|
|
let file = File::open(src).unwrap();
|
2021-10-17 17:40:22 +00:00
|
|
|
let spec = serde_json::from_reader(file).unwrap();
|
2022-07-03 02:09:38 +00:00
|
|
|
let mut generator = progenitor::Generator::default();
|
2021-10-17 17:40:22 +00:00
|
|
|
|
2023-04-25 16:11:52 +00:00
|
|
|
let tokens = generator.generate_tokens(&spec).unwrap();
|
|
|
|
let ast = syn::parse2(tokens).unwrap();
|
|
|
|
let content = prettyplease::unparse(&ast);
|
2021-10-17 17:40:22 +00:00
|
|
|
|
|
|
|
let mut out_file = Path::new(&env::var("OUT_DIR").unwrap()).to_path_buf();
|
|
|
|
out_file.push("codegen.rs");
|
|
|
|
|
|
|
|
fs::write(out_file, content).unwrap();
|
|
|
|
}
|