use anyhow::Result;
use clap::Parser;
use studio_worker::{cli, run_cli, telemetry};
use tracing_subscriber::layer::SubscriberExt as _;
use tracing_subscriber::util::SubscriberInitExt as _;
fn main() -> Result<()> {
let env_filter = tracing_subscriber::EnvFilter::try_from_default_env()
.unwrap_or_else(|_| tracing_subscriber::EnvFilter::new("studio_worker=info,warn"));
tracing_subscriber::registry()
.with(env_filter)
.with(tracing_subscriber::fmt::layer().with_target(false))
.with(telemetry::tracing_layer())
.init();
let _sentry_guard = telemetry::init();
let cli_args = cli::Cli::parse();
let runtime = tokio::runtime::Runtime::new()?;
let result = runtime.block_on(run_cli(cli_args));
if let Err(e) = &result {
tracing::error!("{e:#}");
}
result
}