mirror of
https://git.neonteam.dev/amizing/robinsr.git
synced 2025-03-12 03:28:30 -04:00
chore: split executable into lib and main
This commit is contained in:
parent
c034f8a2f9
commit
505c446a53
12
gameserver/src/lib.rs
Normal file
12
gameserver/src/lib.rs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#![feature(let_chains)]
|
||||||
|
use anyhow::Result;
|
||||||
|
|
||||||
|
mod net;
|
||||||
|
mod util;
|
||||||
|
|
||||||
|
use net::gateway::Gateway;
|
||||||
|
|
||||||
|
pub async fn start_gameserver() -> Result<()> {
|
||||||
|
let mut gateway = Gateway::new("0.0.0.0", 23301).await?;
|
||||||
|
Box::pin(gateway.listen()).await
|
||||||
|
}
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#[macro_export]
|
|
||||||
macro_rules! log_error {
|
|
||||||
($e:expr) => {
|
|
||||||
if let Err(e) = $e {
|
|
||||||
tracing::error!(error.message = %format!("{}", &e), "{:?}", e);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
($context:expr, $e:expr $(,)?) => {
|
|
||||||
if let Err(e) = $e {
|
|
||||||
let e = format!("{:?}", ::anyhow::anyhow!(e).context($context));
|
|
||||||
tracing::error!(error.message = %format!("{}", &e), "{:?}", e);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
($ok_context:expr, $err_context:expr, $e:expr $(,)?) => {
|
|
||||||
if let Err(e) = $e {
|
|
||||||
let e = format!("{:?}", ::anyhow::anyhow!(e).context($err_context));
|
|
||||||
tracing::error!(error.message = %format!("{}", &e), "{:?}", e);
|
|
||||||
} else {
|
|
||||||
tracing::info!($ok_context);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn init_tracing() {
|
|
||||||
#[cfg(target_os = "windows")]
|
|
||||||
ansi_term::enable_ansi_support().unwrap();
|
|
||||||
|
|
||||||
env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
|
|
||||||
}
|
|
||||||
@ -1,16 +1,14 @@
|
|||||||
#![feature(let_chains)]
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
|
||||||
mod logging;
|
pub fn init_tracing() {
|
||||||
mod net;
|
#[cfg(target_os = "windows")]
|
||||||
mod util;
|
ansi_term::enable_ansi_support().unwrap();
|
||||||
|
|
||||||
use logging::init_tracing;
|
env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
|
||||||
use net::gateway::Gateway;
|
}
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> Result<()> {
|
async fn main() -> Result<()> {
|
||||||
init_tracing();
|
init_tracing();
|
||||||
let mut gateway = Gateway::new("0.0.0.0", 23301).await?;
|
gameserver::start_gameserver().await
|
||||||
Box::pin(gateway.listen()).await
|
|
||||||
}
|
}
|
||||||
|
|||||||
60
sdkserver/src/lib.rs
Normal file
60
sdkserver/src/lib.rs
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
use anyhow::Result;
|
||||||
|
use axum::Router;
|
||||||
|
use axum::http::Method;
|
||||||
|
use axum::http::header::CONTENT_TYPE;
|
||||||
|
use axum::routing::{get, post};
|
||||||
|
use services::{auth, dispatch, errors, sr_tools};
|
||||||
|
use tower_http::cors::{Any, CorsLayer};
|
||||||
|
use tracing::Level;
|
||||||
|
|
||||||
|
mod config;
|
||||||
|
mod services;
|
||||||
|
|
||||||
|
const PORT: u16 = 21000;
|
||||||
|
|
||||||
|
pub async fn start_sdkserver() -> Result<()> {
|
||||||
|
let span = tracing::span!(Level::DEBUG, "main");
|
||||||
|
let _ = span.enter();
|
||||||
|
|
||||||
|
let router = Router::new()
|
||||||
|
.route(
|
||||||
|
dispatch::QUERY_DISPATCH_ENDPOINT,
|
||||||
|
get(dispatch::query_dispatch),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
dispatch::QUERY_GATEWAY_ENDPOINT,
|
||||||
|
get(dispatch::query_gateway),
|
||||||
|
)
|
||||||
|
.route(auth::RISKY_API_CHECK_ENDPOINT, post(auth::risky_api_check))
|
||||||
|
.route(
|
||||||
|
auth::LOGIN_WITH_PASSWORD_ENDPOINT,
|
||||||
|
post(auth::login_with_password),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
auth::LOGIN_WITH_SESSION_TOKEN_ENDPOINT,
|
||||||
|
post(auth::login_with_session_token),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
auth::GRANTER_LOGIN_VERIFICATION_ENDPOINT,
|
||||||
|
post(auth::granter_login_verification),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
sr_tools::SRTOOLS_UPLOAD_ENDPOINT,
|
||||||
|
post(sr_tools::sr_tool_save),
|
||||||
|
)
|
||||||
|
.layer(
|
||||||
|
CorsLayer::new()
|
||||||
|
.allow_origin(Any)
|
||||||
|
.allow_methods([Method::GET, Method::POST, Method::PATCH, Method::DELETE])
|
||||||
|
.allow_headers([CONTENT_TYPE]),
|
||||||
|
)
|
||||||
|
.fallback(errors::not_found);
|
||||||
|
|
||||||
|
let addr = format!("0.0.0.0:{PORT}");
|
||||||
|
let server = axum_server::bind(addr.parse()?);
|
||||||
|
|
||||||
|
tracing::info!("sdkserver is listening at {addr}");
|
||||||
|
server.serve(router.into_make_service()).await?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#[macro_export]
|
|
||||||
macro_rules! log_error {
|
|
||||||
($e:expr) => {
|
|
||||||
if let Err(e) = $e {
|
|
||||||
tracing::error!(error.message = %format!("{}", &e), "{:?}", e);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
($context:expr, $e:expr $(,)?) => {
|
|
||||||
if let Err(e) = $e {
|
|
||||||
let e = format!("{:?}", ::anyhow::anyhow!(e).context($context));
|
|
||||||
tracing::error!(error.message = %format!("{}", &e), "{:?}", e);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
($ok_context:expr, $err_context:expr, $e:expr $(,)?) => {
|
|
||||||
if let Err(e) = $e {
|
|
||||||
let e = format!("{:?}", ::anyhow::anyhow!(e).context($err_context));
|
|
||||||
tracing::error!(error.message = %format!("{}", &e), "{:?}", e);
|
|
||||||
} else {
|
|
||||||
tracing::info!($ok_context);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn init_tracing() {
|
|
||||||
#[cfg(target_os = "windows")]
|
|
||||||
ansi_term::enable_ansi_support().unwrap();
|
|
||||||
|
|
||||||
env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
|
|
||||||
}
|
|
||||||
@ -1,65 +1,14 @@
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use axum::Router;
|
|
||||||
use axum::http::Method;
|
|
||||||
use axum::http::header::CONTENT_TYPE;
|
|
||||||
use axum::routing::{get, post};
|
|
||||||
use logging::init_tracing;
|
|
||||||
use services::{auth, dispatch, errors, sr_tools};
|
|
||||||
use tower_http::cors::{Any, CorsLayer};
|
|
||||||
use tracing::Level;
|
|
||||||
|
|
||||||
mod config;
|
pub fn init_tracing() {
|
||||||
mod logging;
|
#[cfg(target_os = "windows")]
|
||||||
mod services;
|
ansi_term::enable_ansi_support().unwrap();
|
||||||
|
|
||||||
const PORT: u16 = 21000;
|
env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> Result<()> {
|
async fn main() -> Result<()> {
|
||||||
init_tracing();
|
init_tracing();
|
||||||
|
sdkserver::start_sdkserver().await
|
||||||
let span = tracing::span!(Level::DEBUG, "main");
|
|
||||||
let _ = span.enter();
|
|
||||||
|
|
||||||
let router = Router::new()
|
|
||||||
.route(
|
|
||||||
dispatch::QUERY_DISPATCH_ENDPOINT,
|
|
||||||
get(dispatch::query_dispatch),
|
|
||||||
)
|
|
||||||
.route(
|
|
||||||
dispatch::QUERY_GATEWAY_ENDPOINT,
|
|
||||||
get(dispatch::query_gateway),
|
|
||||||
)
|
|
||||||
.route(auth::RISKY_API_CHECK_ENDPOINT, post(auth::risky_api_check))
|
|
||||||
.route(
|
|
||||||
auth::LOGIN_WITH_PASSWORD_ENDPOINT,
|
|
||||||
post(auth::login_with_password),
|
|
||||||
)
|
|
||||||
.route(
|
|
||||||
auth::LOGIN_WITH_SESSION_TOKEN_ENDPOINT,
|
|
||||||
post(auth::login_with_session_token),
|
|
||||||
)
|
|
||||||
.route(
|
|
||||||
auth::GRANTER_LOGIN_VERIFICATION_ENDPOINT,
|
|
||||||
post(auth::granter_login_verification),
|
|
||||||
)
|
|
||||||
.route(
|
|
||||||
sr_tools::SRTOOLS_UPLOAD_ENDPOINT,
|
|
||||||
post(sr_tools::sr_tool_save),
|
|
||||||
)
|
|
||||||
.layer(
|
|
||||||
CorsLayer::new()
|
|
||||||
.allow_origin(Any)
|
|
||||||
.allow_methods([Method::GET, Method::POST, Method::PATCH, Method::DELETE])
|
|
||||||
.allow_headers([CONTENT_TYPE]),
|
|
||||||
)
|
|
||||||
.fallback(errors::not_found);
|
|
||||||
|
|
||||||
let addr = format!("0.0.0.0:{PORT}");
|
|
||||||
let server = axum_server::bind(addr.parse()?);
|
|
||||||
|
|
||||||
tracing::info!("sdkserver is listening at {addr}");
|
|
||||||
server.serve(router.into_make_service()).await?;
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user