Просмотр исходного кода

move program options to cli dir

ghassmo 5 лет назад
Родитель
Сommit
3b54479c9e
8 измененных файлов с 94 добавлено и 74 удалено
  1. 4 3
      src/bin/darkfid.rs
  2. 4 3
      src/bin/gatewayd.rs
  3. 7 64
      src/cli/client_cli/wallet_cli.rs
  4. 8 0
      src/cli/mod.rs
  5. 68 0
      src/cli/service_cli.rs
  6. 1 0
      src/lib.rs
  7. 2 2
      src/rpc/jsonserver.rs
  8. 0 2
      src/service/mod.rs

+ 4 - 3
src/bin/darkfid.rs

@@ -16,7 +16,8 @@ use drk::crypto::{
     save_params, setup_mint_prover, setup_spend_prover,
 };
 use drk::serial::Decodable;
-use drk::service::{ClientProgramOptions, GatewayClient, GatewaySlabsSubscriber};
+use drk::service::{GatewayClient, GatewaySlabsSubscriber};
+use drk::cli::WalletCli;
 use drk::state::{state_transition, ProgramState, StateUpdate};
 use drk::wallet::{WalletDB, WalletPtr};
 use drk::{tx, Result};
@@ -158,7 +159,7 @@ pub async fn subscribe(gateway_slabs_sub: GatewaySlabsSubscriber, mut state: Sta
     }
 }
 
-async fn start(executor: Arc<Executor<'_>>, options: Arc<ClientProgramOptions>) -> Result<()> {
+async fn start(executor: Arc<Executor<'_>>, options: Arc<WalletCli>) -> Result<()> {
     let connect_addr: SocketAddr = setup_addr(options.connect_addr, "127.0.0.1:3333".parse()?);
     let sub_addr: SocketAddr = setup_addr(options.sub_addr, "127.0.0.1:4444".parse()?);
     let database_path = options.database_path.clone();
@@ -235,7 +236,7 @@ fn main() -> Result<()> {
     let ex = Arc::new(Executor::new());
     let (signal, shutdown) = async_channel::unbounded::<()>();
 
-    let options = Arc::new(ClientProgramOptions::load()?);
+    let options = Arc::new(WalletCli::load()?);
 
     let logger_config = ConfigBuilder::new().set_time_format_str("%T%.6f").build();
 

+ 4 - 3
src/bin/gatewayd.rs

@@ -2,7 +2,8 @@ use std::net::SocketAddr;
 use std::sync::Arc;
 
 use drk::blockchain::{rocks::columns, Rocks, RocksColumn};
-use drk::service::{GatewayService, ProgramOptions};
+use drk::service::GatewayService;
+use drk::cli::ServiceCli;
 use drk::Result;
 use drk::util::join_config_path;
 
@@ -17,7 +18,7 @@ fn setup_addr(address: Option<SocketAddr>, default: SocketAddr) -> SocketAddr {
     }
 }
 
-async fn start(executor: Arc<Executor<'_>>, options: ProgramOptions) -> Result<()> {
+async fn start(executor: Arc<Executor<'_>>, options: ServiceCli) -> 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 database_path = options.database_path.clone();
@@ -38,7 +39,7 @@ fn main() -> Result<()> {
     let ex = Arc::new(Executor::new());
     let (signal, shutdown) = async_channel::unbounded::<()>();
 
-    let options = ProgramOptions::load()?;
+    let options = ServiceCli::load()?;
 
     let logger_config = ConfigBuilder::new().set_time_format_str("%T%.6f").build();
 

+ 7 - 64
src/service/options.rs → src/cli/client_cli/wallet_cli.rs

@@ -1,71 +1,13 @@
-use crate::Result;
-use std::net::SocketAddr;
-
-pub struct ProgramOptions {
-    pub accept_addr: Option<SocketAddr>,
-    pub pub_addr: Option<SocketAddr>,
-    pub verbose: bool,
-    pub database_path: Box<std::path::PathBuf>,
-    pub log_path: Box<std::path::PathBuf>,
-}
-
-impl ProgramOptions {
-    pub fn load() -> Result<ProgramOptions> {
-        let app = clap_app!(dfi =>
-            (version: "0.1.0")
-            (author: "Amir Taaki <amir@dyne.org>")
-            (about: "run service daemon")
-            (@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 DATABASE_PATH: --database +takes_value "database path")
-            (@arg LOG_PATH: --log +takes_value "Logfile path")
-        )
-        .get_matches();
-
-        let accept_addr = if let Some(accept_addr) = app.value_of("ACCEPT") {
-            Some(accept_addr.parse()?)
-        } else {
-            None
-        };
 
-        let pub_addr = if let Some(pub_addr) = app.value_of("PUB_ADDR") {
-            Some(pub_addr.parse()?)
-        } else {
-            None
-        };
+use std::net::SocketAddr;
 
-        let verbose = app.is_present("VERBOSE");
+use crate::Result;
 
-        let database_path = Box::new(
-            if let Some(database_path) = app.value_of("DATABASE_PATH") {
-                std::path::Path::new(database_path)
-            } else {
-                std::path::Path::new("database.db")
-            }
-            .to_path_buf(),
-        );
+use clap::{App, Arg};
 
-        let log_path = Box::new(
-            if let Some(log_path) = app.value_of("LOG_PATH") {
-                std::path::Path::new(log_path)
-            } else {
-                std::path::Path::new("/tmp/darkfid_service_daemon.log")
-            }
-            .to_path_buf(),
-        );
 
-        Ok(ProgramOptions {
-            accept_addr,
-            pub_addr,
-            verbose,
-            database_path,
-            log_path,
-        })
-    }
-}
 
-pub struct ClientProgramOptions {
+pub struct WalletCli {
     pub connect_addr: Option<SocketAddr>,
     pub sub_addr: Option<SocketAddr>,
     pub verbose: bool,
@@ -74,8 +16,9 @@ pub struct ClientProgramOptions {
     pub rpc_port: u16,
 }
 
-impl ClientProgramOptions {
+impl WalletCli {
     pub fn load() -> Result<Self> {
+        // let app = App::new("dfi").version("0.1.0").author("Amir Taaki <amir@dyne.org>").about("Run Service Client");
         let app = clap_app!(dfi =>
             (version: "0.1.0")
             (author: "Amir Taaki <amir@dyne.org>")
@@ -127,7 +70,7 @@ impl ClientProgramOptions {
             8000
         };
 
-        Ok(ClientProgramOptions {
+        Ok(Self{
             connect_addr,
             sub_addr,
             verbose,

+ 8 - 0
src/cli/mod.rs

@@ -0,0 +1,8 @@
+
+
+pub mod client_cli;
+pub mod service_cli;
+
+pub use client_cli::wallet_cli::WalletCli;
+pub use service_cli::ServiceCli;
+

+ 68 - 0
src/cli/service_cli.rs

@@ -0,0 +1,68 @@
+use crate::Result;
+use std::net::SocketAddr;
+
+
+pub struct ServiceCli {
+    pub accept_addr: Option<SocketAddr>,
+    pub pub_addr: Option<SocketAddr>,
+    pub verbose: bool,
+    pub database_path: Box<std::path::PathBuf>,
+    pub log_path: Box<std::path::PathBuf>,
+}
+
+impl ServiceCli {
+    pub fn load() -> Result<Self> {
+        let app = clap_app!(dfi =>
+            (version: "0.1.0")
+            (author: "Amir Taaki <amir@dyne.org>")
+            (about: "run service daemon")
+            (@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 DATABASE_PATH: --database +takes_value "database path")
+            (@arg LOG_PATH: --log +takes_value "Logfile path")
+        )
+        .get_matches();
+
+        let accept_addr = if let Some(accept_addr) = app.value_of("ACCEPT") {
+            Some(accept_addr.parse()?)
+        } else {
+            None
+        };
+
+        let pub_addr = if let Some(pub_addr) = app.value_of("PUB_ADDR") {
+            Some(pub_addr.parse()?)
+        } else {
+            None
+        };
+
+        let verbose = app.is_present("VERBOSE");
+
+        let database_path = Box::new(
+            if let Some(database_path) = app.value_of("DATABASE_PATH") {
+                std::path::Path::new(database_path)
+            } else {
+                std::path::Path::new("database.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)
+            } else {
+                std::path::Path::new("/tmp/darkfid_service_daemon.log")
+            }
+            .to_path_buf(),
+        );
+
+        Ok(Self {
+            accept_addr,
+            pub_addr,
+            verbose,
+            database_path,
+            log_path,
+        })
+    }
+}
+

+ 1 - 0
src/lib.rs

@@ -22,6 +22,7 @@ pub mod vm;
 pub mod vm_serial;
 pub mod wallet;
 pub mod util;
+pub mod cli;
 
 pub use crate::bls_extensions::BlsStringConversion;
 pub use crate::error::{Error, Result};

+ 2 - 2
src/rpc/jsonserver.rs

@@ -1,5 +1,5 @@
 use crate::rpc::adapter::RpcAdapter;
-use crate::service::ClientProgramOptions;
+use crate::cli::WalletCli;
 use crate::{Error, Result};
 use async_executor::Executor;
 use async_native_tls::TlsAcceptor;
@@ -73,7 +73,7 @@ pub async fn listen(
 
 pub async fn start(
     executor: Arc<Executor<'_>>,
-    options: Arc<ClientProgramOptions>,
+    options: Arc<WalletCli>,
     adapter: RpcAdapter,
 ) -> Result<()> {
     debug!(target: "JSONSERVER", "START FUNCTION CALLED");

+ 0 - 2
src/service/mod.rs

@@ -1,6 +1,4 @@
 pub mod gateway;
-pub mod options;
 pub mod reqrep;
 
 pub use gateway::{GatewayClient, GatewayService, GatewaySlabsSubscriber};
-pub use options::{ClientProgramOptions, ProgramOptions};