add slabstore_path to program options for services

This commit is contained in:
ghassmo
2021-05-30 06:24:17 +03:00
parent 12c1ebb9b9
commit 557fe995ae
3 changed files with 17 additions and 4 deletions

View File

@@ -19,8 +19,9 @@ fn setup_addr(address: Option<SocketAddr>, default: SocketAddr) -> SocketAddr {
async fn start(executor: Arc<Executor<'_>>, 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(())

View File

@@ -35,8 +35,8 @@ pub struct GatewayService {
}
impl GatewayService {
pub fn new(addr: SocketAddr, pub_addr: SocketAddr) -> Result<Arc<GatewayService>> {
let slabstore = SlabStore::new(Path::new("slabstore.db"))?;
pub fn new(addr: SocketAddr, pub_addr: SocketAddr, slabstore_path: &Path) -> Result<Arc<GatewayService>> {
let slabstore = SlabStore::new(slabstore_path)?;
Ok(Arc::new(GatewayService {
slabstore,

View File

@@ -5,6 +5,7 @@ pub struct ProgramOptions {
pub accept_addr: Option<SocketAddr>,
pub pub_addr: Option<SocketAddr>,
pub verbose: bool,
pub slabstore_path: Box<std::path::PathBuf>,
pub log_path: Box<std::path::PathBuf>,
}
@@ -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 <amir@dyne.org>")
(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")