39 lines
977 B
Rust
39 lines
977 B
Rust
|
use clap::{Parser, Subcommand};
|
||
|
|
||
|
use tcp_over_http::tcp_relay_client::client_config::ClientConfig;
|
||
|
use tcp_over_http::tcp_relay_server::server_config::ServerConfig;
|
||
|
|
||
|
#[derive(Parser, Debug)]
|
||
|
#[clap(
|
||
|
author,
|
||
|
version,
|
||
|
about,
|
||
|
long_about = "Encapsulate TCP sockets inside HTTP WebSockets"
|
||
|
)]
|
||
|
struct CliArgs {
|
||
|
#[clap(subcommand)]
|
||
|
command: SubCommands,
|
||
|
}
|
||
|
|
||
|
#[derive(Subcommand, Debug)]
|
||
|
enum SubCommands {
|
||
|
/// Run as server
|
||
|
Server(ServerConfig),
|
||
|
|
||
|
/// Run as client
|
||
|
Client(ClientConfig),
|
||
|
}
|
||
|
|
||
|
#[actix_web::main]
|
||
|
async fn main() -> std::io::Result<()> {
|
||
|
env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
|
||
|
|
||
|
let args: CliArgs = CliArgs::parse();
|
||
|
|
||
|
// Dispatch the request to the appropriate part of the program
|
||
|
match args.command {
|
||
|
SubCommands::Server(c) => tcp_over_http::tcp_relay_server::run_app(c).await,
|
||
|
SubCommands::Client(c) => tcp_over_http::tcp_relay_client::run_app(c).await,
|
||
|
}
|
||
|
}
|