53 lines
1.3 KiB
Rust
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?
|
|
}
|