ksud: support self stop server

This commit is contained in:
weishu 2024-02-20 19:58:40 +08:00
parent fceffc9cfe
commit 30dfbbdc0e
No known key found for this signature in database
GPG Key ID: 6D3F65FFD9559C06

View File

@ -7,7 +7,13 @@ use tower_http::services::ServeDir;
use crate::defs;
async fn serve(dir: impl AsRef<Path>, port: u16) {
let app = Router::new().nest_service("/", ServeDir::new(dir));
let app = Router::new().nest_service("/", ServeDir::new(dir)).route(
"/stop",
axum::routing::get(|| async {
log::info!("stopping server");
std::process::exit(0);
}),
);
let addr = SocketAddr::from(([127, 0, 0, 1], port));
let listener = tokio::net::TcpListener::bind(addr).await.unwrap();
axum::serve(listener, app).await.unwrap();