use clap::Parser;
use unitycatalog_storage_proxy::cli::{Cli, Command, run_healthcheck};
fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt()
.with_env_filter(
tracing_subscriber::EnvFilter::try_from_default_env()
.unwrap_or_else(|_| tracing_subscriber::EnvFilter::new("info")),
)
.init();
match Cli::parse().command {
Command::Healthcheck(args) => std::process::exit(match run_healthcheck(&args) {
Ok(()) => 0,
Err(e) => {
eprintln!("healthcheck failed: {e}");
1
}
}),
Command::Serve(args) => {
let config = args.resolve_config()?;
let runtime = tokio::runtime::Runtime::new()?;
runtime.block_on(unitycatalog_storage_proxy::cli::serve::serve(config))?;
Ok(())
}
}
}