mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-06-29 21:52:09 -07:00
47 lines
1.1 KiB
Rust
47 lines
1.1 KiB
Rust
use std::{fs, thread};
|
|
|
|
use brk_core::{dot_brk_log_path, dot_brk_path};
|
|
use brk_query::Params as QueryArgs;
|
|
use clap::Parser;
|
|
use clap_derive::{Parser, Subcommand};
|
|
use query::query;
|
|
use run::{RunConfig, run};
|
|
|
|
mod query;
|
|
mod run;
|
|
|
|
#[derive(Parser)]
|
|
#[command(version, about)]
|
|
#[command(propagate_version = true)]
|
|
struct Cli {
|
|
#[command(subcommand)]
|
|
command: Commands,
|
|
}
|
|
|
|
#[derive(Subcommand, Debug)]
|
|
enum Commands {
|
|
/// Run the indexer, computer and server, use `run -h` for more information
|
|
Run(RunConfig),
|
|
/// Query generated datasets via the `run` command in a similar fashion as the server's API, use `query -h` for more information
|
|
Query(QueryArgs),
|
|
}
|
|
|
|
pub fn main() -> color_eyre::Result<()> {
|
|
color_eyre::install()?;
|
|
|
|
fs::create_dir_all(dot_brk_path())?;
|
|
|
|
brk_logger::init(Some(&dot_brk_log_path()));
|
|
|
|
let cli = Cli::parse();
|
|
|
|
thread::Builder::new()
|
|
.stack_size(128 * 1024 * 1024)
|
|
.spawn(|| match cli.command {
|
|
Commands::Run(args) => run(args),
|
|
Commands::Query(args) => query(args),
|
|
})?
|
|
.join()
|
|
.unwrap()
|
|
}
|