mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-04-24 22:59:58 -07:00
39 lines
1.1 KiB
Rust
39 lines
1.1 KiB
Rust
use std::{env, fs, path::PathBuf};
|
|
|
|
use aide::axum::ApiRouter;
|
|
use brk_computer::Computer;
|
|
use brk_indexer::Indexer;
|
|
use brk_query::Vecs;
|
|
use brk_server::{ApiRoutes, finish_openapi, generate_bindings};
|
|
|
|
pub fn main() -> color_eyre::Result<()> {
|
|
color_eyre::install()?;
|
|
|
|
let tmp = env::temp_dir().join("brk_bindgen");
|
|
fs::create_dir_all(&tmp)?;
|
|
|
|
let indexer = Indexer::forced_import(&tmp)?;
|
|
let computer = Computer::forced_import(&tmp, &indexer)?;
|
|
let vecs = Vecs::build_rw(&indexer, &computer);
|
|
|
|
let (_, openapi) = finish_openapi(ApiRouter::new().add_api_routes());
|
|
|
|
let workspace_root = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
|
.parent()
|
|
.and_then(|p| p.parent())
|
|
.unwrap()
|
|
.to_path_buf();
|
|
|
|
let output_paths = brk_bindgen::ClientOutputPaths::new()
|
|
.rust(workspace_root.join("crates/brk_client/src/lib.rs"))
|
|
.javascript(workspace_root.join("website/scripts/modules/brk-client/index.js"));
|
|
|
|
generate_bindings(&vecs, &openapi, &output_paths)?;
|
|
|
|
fs::remove_dir_all(&tmp)?;
|
|
|
|
eprintln!("Done");
|
|
|
|
Ok(())
|
|
}
|