Merged all workspace projects into a single binary project
This commit is contained in:
38
src/main.rs
Normal file
38
src/main.rs
Normal file
@@ -0,0 +1,38 @@
|
||||
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,
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user