39 lines
734 B
Rust
39 lines
734 B
Rust
use std::{
|
|
error::Error,
|
|
sync::Arc,
|
|
};
|
|
|
|
use tracing::{info};
|
|
use tracing_subscriber::{
|
|
fmt,
|
|
fmt::format::FmtSpan,
|
|
EnvFilter,
|
|
};
|
|
|
|
use ptth::relay;
|
|
use ptth::relay::RelayState;
|
|
|
|
#[tokio::main]
|
|
async fn main () -> Result <(), Box <dyn Error>> {
|
|
fmt ()
|
|
.with_env_filter (EnvFilter::from_default_env ())
|
|
.with_span_events (FmtSpan::FULL)
|
|
.init ()
|
|
;
|
|
|
|
let config_file = ptth::load_toml::load ("config/ptth_relay.toml");
|
|
|
|
info! ("ptth_relay Git version: {:?}", ptth::git_version::GIT_VERSION);
|
|
|
|
let (shutdown_rx, forced_shutdown) = ptth::graceful_shutdown::init_with_force ();
|
|
|
|
forced_shutdown.wrap_server (
|
|
relay::run_relay (
|
|
Arc::new (RelayState::from (&config_file)),
|
|
shutdown_rx
|
|
)
|
|
).await??;
|
|
|
|
Ok (())
|
|
}
|