Merge branch 'cli-args' into 'main'

CLI arguments

See merge request x433485/minisql!14
This commit is contained in:
Maxim Svistunov 2024-01-28 20:01:41 +01:00
commit 25bb21c29c
3 changed files with 16 additions and 1 deletions

1
Cargo.lock generated
View file

@ -203,6 +203,7 @@ name = "client"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap",
"minisql", "minisql",
"parser", "parser",
"proto", "proto",

View file

@ -11,3 +11,4 @@ anyhow = "1.0.76"
proto = { path = "../proto" } proto = { path = "../proto" }
minisql = { path = "../minisql" } minisql = { path = "../minisql" }
parser = { path = "../parser" } parser = { path = "../parser" }
clap = { version = "4.4.18", features = ["derive"] }

View file

@ -1,3 +1,4 @@
use clap::Parser;
use proto::handshake::client::do_client_handshake; use proto::handshake::client::do_client_handshake;
use proto::handshake::request::HandshakeRequest; use proto::handshake::request::HandshakeRequest;
use proto::reader::protoreader::ProtoReader; use proto::reader::protoreader::ProtoReader;
@ -9,9 +10,21 @@ use proto::message::frontend::{FrontendMessage, QueryData};
use proto::reader::oneway::OneWayProtoReader; use proto::reader::oneway::OneWayProtoReader;
use proto::writer::oneway::OneWayProtoWriter; use proto::writer::oneway::OneWayProtoWriter;
#[derive(Parser)]
struct Cli {
/// Port number of the server.
#[arg(short, long, default_value_t = 5432, help = "Port number of the server")]
port: u16,
/// Host name or IP address of the server.
#[arg(short, long, default_value = "127.0.0.1", help = "Host name or IP address of the server")]
host: String,
}
#[tokio::main] #[tokio::main]
async fn main() -> anyhow::Result<()> { async fn main() -> anyhow::Result<()> {
let addr = "127.0.0.1:5432"; let cli = Cli::parse();
let addr = format!("{}:{}", cli.host, cli.port);
let mut stream = TcpStream::connect(addr).await?; let mut stream = TcpStream::connect(addr).await?;
let (reader, writer) = stream.split(); let (reader, writer) = stream.split();