From 2fde9659db1fec94745575fa661e9e5d4935311a Mon Sep 17 00:00:00 2001 From: alemi Date: Wed, 12 Apr 2023 04:59:33 +0200 Subject: [PATCH] feat: parse CLI args in server too --- Cargo.toml | 2 +- src/server/buffer/service.rs | 1 + src/server/main.rs | 29 ++++++++++++++++++++++------- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 54d1bde..71fef1a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,5 +50,5 @@ default = [] logs = ["dep:tracing-subscriber"] # runtime = ["dep:tokio", "dep:tokio-stream"] # serde = ["dep:serde", "dep:serde_json"] -server = ["logs"] +server = ["logs", "dep:clap"] nvim = ["logs", "dep:nvim-rs", "dep:clap", "dep:rmpv"] diff --git a/src/server/buffer/service.rs b/src/server/buffer/service.rs index c0da738..141e96e 100644 --- a/src/server/buffer/service.rs +++ b/src/server/buffer/service.rs @@ -38,6 +38,7 @@ pub struct BufferService { } impl BufferService { + #[allow(unused)] fn get_buffer(&self, path: &String) -> Result { match self.map.read().unwrap().get(path) { Some(buf) => Ok(buf.clone()), diff --git a/src/server/main.rs b/src/server/main.rs index 377e346..8d57893 100644 --- a/src/server/main.rs +++ b/src/server/main.rs @@ -4,25 +4,40 @@ //! all clients and synching everyone's cursor. //! -mod buffer; - +use clap::Parser; use tracing::info; - use tonic::transport::Server; +mod buffer; + use crate::buffer::service::BufferService; +#[derive(Parser, Debug)] +struct CliArgs { + + /// address to listen on + #[arg(long, default_value = "[::1]:50051")] + host: String, + + /// enable debug log level + #[arg(long, default_value_t = false)] + debug: bool, +} + #[tokio::main] async fn main() -> Result<(), Box> { - tracing_subscriber::fmt::init(); + let args = CliArgs::parse(); - let addr = "[::1]:50051".parse()?; + tracing_subscriber::fmt() + .with_writer(std::io::stdout) + .with_max_level(if args.debug { tracing::Level::DEBUG } else { tracing::Level::INFO }) + .init(); - info!("Starting server"); + info!("starting server"); Server::builder() .add_service(BufferService::new().server()) - .serve(addr) + .serve(args.host.parse()?) .await?; Ok(())