Files
bore/src/main.rs
2022-04-06 01:08:35 -04:00

58 lines
1.2 KiB
Rust

use anyhow::Result;
use bore_cli::server::Server;
use clap::{Parser, Subcommand};
#[derive(Parser, Debug)]
#[clap(author, version, about)]
#[clap(propagate_version = true)]
struct Args {
#[clap(subcommand)]
command: Command,
}
#[derive(Subcommand, Debug)]
enum Command {
/// Starts a local proxy to the remote server.
Local {
/// The local port to listen on.
local_port: u16,
/// Address of the remote server to expose local ports to.
#[clap(short, long)]
to: String,
/// Optional port on the remote server to select.
#[clap(short, long, default_value_t = 0)]
port: u16,
},
/// Runs the remote proxy server.
Server {
/// Minimum TCP port number to accept.
#[clap(long, default_value_t = 1024)]
min_port: u16,
},
}
#[tokio::main]
async fn main() -> Result<()> {
tracing_subscriber::fmt::init();
let args = Args::parse();
match args.command {
Command::Local {
local_port,
to,
port,
} => {
let _ = (local_port, to, port);
todo!()
}
Command::Server { min_port } => {
Server::new(min_port).listen().await?;
}
}
Ok(())
}