use std::{ error::Error, path::PathBuf, }; use structopt::StructOpt; use tokio::runtime; use tracing::debug; #[derive (Debug, StructOpt)] struct Opt { //#[structopt (long)] //file_server_root: Option , #[structopt (long)] config_path: Option , } fn main () -> Result <(), Box > { let opt = Opt::from_args (); tracing_subscriber::fmt::init (); let path = opt.config_path.unwrap_or_else (|| PathBuf::from ("./config/ptth_server.toml")); let config_file: ptth::server::ConfigFile = ptth::load_toml::load (&path); let mut rt = if false { debug! ("Trying to use less RAM"); runtime::Builder::new () .threaded_scheduler () .enable_all () .core_threads (1) .thread_stack_size (1024 * 1024) .build ()? } else { runtime::Runtime::new ()? }; rt.block_on (async { ptth::server::run_server ( config_file, ptth::graceful_shutdown::init (), Some (path) ).await })?; Ok (()) }