()
| 17 | |
| 18 | #[tokio::main] |
| 19 | async fn main() -> Result<()> { |
| 20 | // Parse the CLI arguments (currently only used for version info, more can be |
| 21 | // added later) |
| 22 | let _cli = Cli::parse(); |
| 23 | |
| 24 | color_eyre::install()?; |
| 25 | |
| 26 | let _guard = initialize_tracing_log(PBS_MODULE_NAME, LogsSettings::from_env_config()?); |
| 27 | |
| 28 | let _args = cb_cli::PbsArgs::parse(); |
| 29 | |
| 30 | let pbs_config = load_pbs_config().await?; |
| 31 | |
| 32 | PbsService::init_metrics(pbs_config.chain)?; |
| 33 | let state = PbsState::new(pbs_config); |
| 34 | let server = PbsService::run::<_, DefaultBuilderApi>(state); |
| 35 | |
| 36 | tokio::select! { |
| 37 | maybe_err = server => { |
| 38 | if let Err(err) = maybe_err { |
| 39 | error!(%err, "PBS service unexpectedly stopped"); |
| 40 | eprintln!("PBS service unexpectedly stopped: {err}"); |
| 41 | } |
| 42 | }, |
| 43 | _ = wait_for_signal() => { |
| 44 | info!("shutting down"); |
| 45 | } |
| 46 | } |
| 47 | |
| 48 | Ok(()) |
| 49 | } |
nothing calls this directly
no test coverage detected