2025-12-01 18:36:58 +01:00

30 lines
696 B
Rust

use std::{path::PathBuf, process};
use cfgsync::server::{CfgSyncConfig, cfgsync_app};
use clap::Parser;
use tokio::net::TcpListener;
#[derive(Parser, Debug)]
#[command(about = "CfgSync")]
struct Args {
config: PathBuf,
}
#[tokio::main]
async fn main() {
let cli = Args::parse();
let config = CfgSyncConfig::load_from_file(&cli.config).unwrap_or_else(|err| {
eprintln!("{err}");
process::exit(1);
});
let port = config.port;
let app = cfgsync_app(config.into());
println!("Server running on http://0.0.0.0:{port}");
let listener = TcpListener::bind(&format!("0.0.0.0:{port}")).await.unwrap();
axum::serve(listener, app).await.unwrap();
}