diff --git a/src/main.rs b/src/main.rs index 11f059ac97f0717814f5648ff81216b9c65ddccc..4818cba0323991c23ab61261c30e0eb166b3cadc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ mod markov; -use std::{fs, path::Path}; +use std::{fs, path::Path, net::Ipv4Addr}; use anyhow::Result; use clap::{arg, Parser}; @@ -58,19 +58,24 @@ impl Api { struct Args { #[arg(short, long)] file: String, + + #[arg(short, long)] + local: bool, } #[tokio::main(flavor = "current_thread")] async fn main() -> Result<()> { - let service = OpenApiService::new(Api::from_file(Args::parse().file)?, "mew", "1.0") + let args = Args::parse(); + let service = OpenApiService::new(Api::from_file(args.file)?, "mew", "1.0") .server("http://czi.wtf"); let app = Route::new() .nest("/", service.clone()) .nest("/docs", service.clone().swagger_ui()); - println!("starting server on http://0.0.0.0:6969"); - Server::new(TcpListener::bind("0.0.0.0:6969")) + let bind_ip = if args.local { Ipv4Addr::new(127,0,0,1) } else { Ipv4Addr::new(0,0,0,0)}; + println!("starting server on http://{}:6969", bind_ip); + Server::new(TcpListener::bind((bind_ip, 6969))) .run(app) .await?;