From 557fe995ae42596ed76755d77bfd1cd9f4000b53 Mon Sep 17 00:00:00 2001 From: ghassmo Date: Sun, 30 May 2021 06:24:17 +0300 Subject: [PATCH] add slabstore_path to program options for services --- src/bin/gatewayd.rs | 3 ++- src/service/gateway.rs | 4 ++-- src/service/options.rs | 14 +++++++++++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/bin/gatewayd.rs b/src/bin/gatewayd.rs index fee47ff87..e3c14319d 100644 --- a/src/bin/gatewayd.rs +++ b/src/bin/gatewayd.rs @@ -19,8 +19,9 @@ fn setup_addr(address: Option, default: SocketAddr) -> SocketAddr { async fn start(executor: Arc>, options: ProgramOptions) -> Result<()> { let accept_addr: SocketAddr = setup_addr(options.accept_addr, "127.0.0.1:3333".parse()?); let pub_addr: SocketAddr = setup_addr(options.pub_addr, "127.0.0.1:4444".parse()?); + let slabstore_path = options.slabstore_path.as_path(); - let gateway = GatewayService::new(accept_addr, pub_addr)?; + let gateway = GatewayService::new(accept_addr, pub_addr, slabstore_path)?; gateway.start(executor.clone()).await?; Ok(()) diff --git a/src/service/gateway.rs b/src/service/gateway.rs index ec1d64cb9..36b9b7df2 100644 --- a/src/service/gateway.rs +++ b/src/service/gateway.rs @@ -35,8 +35,8 @@ pub struct GatewayService { } impl GatewayService { - pub fn new(addr: SocketAddr, pub_addr: SocketAddr) -> Result> { - let slabstore = SlabStore::new(Path::new("slabstore.db"))?; + pub fn new(addr: SocketAddr, pub_addr: SocketAddr, slabstore_path: &Path) -> Result> { + let slabstore = SlabStore::new(slabstore_path)?; Ok(Arc::new(GatewayService { slabstore, diff --git a/src/service/options.rs b/src/service/options.rs index 21bd2fb09..592739d00 100644 --- a/src/service/options.rs +++ b/src/service/options.rs @@ -5,6 +5,7 @@ pub struct ProgramOptions { pub accept_addr: Option, pub pub_addr: Option, pub verbose: bool, + pub slabstore_path: Box, pub log_path: Box, } @@ -17,6 +18,7 @@ impl ProgramOptions { (@arg ACCEPT: -a --accept +takes_value "Accept add//ress") (@arg PUB_ADDR: -p --pubaddr +takes_value "Publisher addr") (@arg VERBOSE: -v --verbose "Increase verbosity") + (@arg SLABSTORE_PATH: --slabstore +takes_value "slabstore path") (@arg LOG_PATH: --log +takes_value "Logfile path") ) .get_matches(); @@ -35,6 +37,15 @@ impl ProgramOptions { let verbose = app.is_present("VERBOSE"); + let slabstore_path = Box::new( + if let Some(slabstore_path) = app.value_of("SLABSTORE_PATH") { + std::path::Path::new(slabstore_path) + } else { + std::path::Path::new("slabstore.db") + } + .to_path_buf(), + ); + let log_path = Box::new( if let Some(log_path) = app.value_of("LOG_PATH") { std::path::Path::new(log_path) @@ -48,6 +59,7 @@ impl ProgramOptions { accept_addr, pub_addr, verbose, + slabstore_path, log_path, }) } @@ -66,7 +78,7 @@ impl ClientProgramOptions { let app = clap_app!(dfi => (version: "0.1.0") (author: "Amir Taaki ") - (about: "run service daemon") + (about: "Run Service Client") (@arg CONNECT: -c --connect +takes_value "Connect add//ress") (@arg SUB_ADDR: -s --subaddr +takes_value "Subscriber addr") (@arg VERBOSE: -v --verbose "Increase verbosity")