31 lines
920 B
Rust
31 lines
920 B
Rust
|
use tokio::runtime::Builder;
|
||
|
use tokio::task;
|
||
|
|
||
|
use sea_battle_backend::args::Args;
|
||
|
use sea_battle_backend::utils::network_utils;
|
||
|
|
||
|
use crate::cli_args::cli_args;
|
||
|
|
||
|
pub async fn start_server_if_missing() {
|
||
|
if !network_utils::is_port_open(cli_args().listen_port()).await {
|
||
|
log::info!(
|
||
|
"Local server will start on {}...",
|
||
|
cli_args().listen_address
|
||
|
);
|
||
|
std::thread::spawn(move || {
|
||
|
let rt = Builder::new_current_thread().enable_all().build().unwrap();
|
||
|
|
||
|
let local_set = task::LocalSet::new();
|
||
|
|
||
|
rt.block_on(local_set.run_until(async move {
|
||
|
sea_battle_backend::server::start_server(Args {
|
||
|
listen_address: cli_args().listen_address.clone(),
|
||
|
cors: None,
|
||
|
})
|
||
|
.await
|
||
|
.expect("Failed to run local server!")
|
||
|
}));
|
||
|
});
|
||
|
}
|
||
|
}
|