use clap::{Parser, ValueHint};
use internet2::addr::ServiceAddr;
use rgb_rpc::RGB_NODE_RPC_ENDPOINT;
use storm_ext::STORM_NODE_EXT_ENDPOINT;
use crate::opts::Opts as SharedOpts;
#[derive(Parser)]
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug)]
#[clap(author, version, name = "rgbd", about = "RGB node managing service")]
pub struct Opts {
#[clap(flatten)]
pub shared: SharedOpts,
#[clap(
short = 'R',
long = "rpc",
env = "RGB_NODE_RPC_ENDPOINT",
default_value = RGB_NODE_RPC_ENDPOINT,
value_hint = ValueHint::FilePath
)]
pub rpc_endpoint: ServiceAddr,
#[clap(
short = 'E',
long = "storm",
env = "STORM_NODE_EXT_ENDPOINT",
default_value = STORM_NODE_EXT_ENDPOINT,
value_hint = ValueHint::FilePath
)]
pub storm_endpoint: ServiceAddr,
#[clap(short = 't', long = "threaded")]
pub threaded_daemons: bool,
}
#[cfg(feature = "server")]
impl Opts {
pub fn process(&mut self) {
self.shared.process([&mut self.rpc_endpoint, &mut self.storm_endpoint]);
}
}