circles/src/server_ws/cmd/main.rs
2025-06-19 10:44:40 +03:00

53 lines
1.3 KiB
Rust

use circle_ws_lib::{spawn_circle_server, ServerConfig};
use clap::Parser;
#[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)]
struct Args {
#[clap(short, long, value_parser, default_value = "127.0.0.1")]
host: String,
#[clap(short, long, value_parser, default_value_t = 8080)]
port: u16,
#[clap(long, value_parser)]
circle_name: String,
#[clap(long, value_parser)]
circle_public_key: String,
#[clap(long, value_parser, default_value = "redis://127.0.0.1/")]
redis_url: String,
#[clap(long)]
auth: bool,
#[clap(long, value_parser)]
cert: Option<String>,
#[clap(long, value_parser)]
key: Option<String>,
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
let args = Args::parse();
std::env::set_var("RUST_LOG", "info,circle_ws_lib=debug");
env_logger::init();
let config = ServerConfig {
circle_name: args.circle_name,
circle_public_key: args.circle_public_key,
host: args.host,
port: args.port,
redis_url: args.redis_url,
enable_auth: args.auth,
cert_path: args.cert,
key_path: args.key,
};
let (server_task, _server_handle) = spawn_circle_server(config)?;
server_task.await?
}