Переглянути джерело

cli: Use incremental -v flag for verbosity instead of separate flags.

parazyd 4 роки тому
батько
коміт
6c7f563786
5 змінених файлів з 46 додано та 51 видалено
  1. 14 13
      src/bin/cashierd.rs
  2. 8 7
      src/bin/darkfid.rs
  3. 8 7
      src/bin/drk.rs
  4. 8 7
      src/bin/gatewayd.rs
  5. 8 17
      src/cli/cli_parser.rs

+ 14 - 13
src/bin/cashierd.rs

@@ -3,9 +3,9 @@ use std::{path::PathBuf, str::FromStr};
 use async_executor::Executor;
 use async_std::sync::{Arc, Mutex};
 use async_trait::async_trait;
-use clap::Parser;
+use clap::{IntoApp, Parser};
 use easy_parallel::Parallel;
-use log::{debug, info, trace};
+use log::{debug, info};
 use rand::rngs::OsRng;
 use serde_json::{json, Value};
 use simplelog::{ColorChoice, LevelFilter, TermLogger, TerminalMode};
@@ -82,7 +82,7 @@ impl RequestHandler for Cashierd {
 
 impl Cashierd {
     async fn new(config: CashierdConfig) -> Result<Self> {
-        trace!(target: "CASHIER DAEMON", "Initialize");
+        debug!(target: "CASHIER DAEMON", "Initialize");
 
         let wallet_path =
             format!("sqlite://{}", expand_path(&config.cashier_wallet_path)?.to_str().unwrap());
@@ -117,7 +117,7 @@ impl Cashierd {
             match network.name {
                 #[cfg(feature = "sol")]
                 NetworkName::Solana => {
-                    trace!(target: "CASHIER DAEMON", "Adding solana network");
+                    debug!(target: "CASHIER DAEMON", "Adding solana network");
                     use drk::service::{sol::SolFailed, SolClient};
                     use solana_sdk::{signature::Signer, signer::keypair::Keypair};
 
@@ -160,7 +160,7 @@ impl Cashierd {
 
                 #[cfg(feature = "eth")]
                 NetworkName::Ethereum => {
-                    trace!(target: "CASHIER DAEMON", "Adding ethereum network");
+                    debug!(target: "CASHIER DAEMON", "Adding ethereum network");
                     use drk::service::{
                         eth::{generate_privkey, Keypair},
                         EthClient,
@@ -217,7 +217,7 @@ impl Cashierd {
 
                 #[cfg(feature = "btc")]
                 NetworkName::Bitcoin => {
-                    trace!(target: "CASHIER DAEMON", "Adding bitcoin network");
+                    debug!(target: "CASHIER DAEMON", "Adding bitcoin network");
                     use drk::service::btc::{BtcClient, BtcFailed, Keypair};
 
                     let bridge2 = self.bridge.clone();
@@ -293,7 +293,7 @@ impl Cashierd {
         let listen_for_notification_from_bridge_task: smol::Task<Result<()>> =
             executor.spawn(async move {
                 while let Some(token_notification) = bridge2.clone().listen().await {
-                    trace!(target: "CASHIER DAEMON", "Received notification from bridge");
+                    debug!(target: "CASHIER DAEMON", "Received notification from bridge");
 
                     let token_notification = token_notification?;
 
@@ -733,6 +733,7 @@ async fn start(
 #[async_std::main]
 async fn main() -> Result<()> {
     let args = CliCashierd::parse();
+    let matches = CliCashierd::into_app().get_matches();
 
     let config_path = if args.config.is_some() {
         expand_path(&args.config.unwrap())?
@@ -740,12 +741,12 @@ async fn main() -> Result<()> {
         join_config_path(&PathBuf::from("cashierd.toml"))?
     };
 
-    let loglevel = if args.verbose {
-        LevelFilter::Debug
-    } else if args.trace {
-        LevelFilter::Trace
-    } else {
-        LevelFilter::Info
+    let mut verbosity_level = 0;
+    verbosity_level += matches.occurrences_of("verbose");
+    let loglevel = match verbosity_level {
+        0 => LevelFilter::Info,
+        1 => LevelFilter::Debug,
+        _ => LevelFilter::Trace,
     };
 
     TermLogger::init(

+ 8 - 7
src/bin/darkfid.rs

@@ -3,7 +3,7 @@ use std::{collections::HashMap, path::PathBuf, str::FromStr};
 use async_executor::Executor;
 use async_std::sync::{Arc, Mutex};
 use async_trait::async_trait;
-use clap::Parser;
+use clap::{IntoApp, Parser};
 use easy_parallel::Parallel;
 use log::{debug, info};
 use num_bigint::BigUint;
@@ -650,6 +650,7 @@ async fn start(
 #[async_std::main]
 async fn main() -> Result<()> {
     let args = CliDarkfid::parse();
+    let matches = CliDarkfid::into_app().get_matches();
 
     let config_path = if args.config.is_some() {
         expand_path(&args.config.unwrap())?
@@ -657,12 +658,12 @@ async fn main() -> Result<()> {
         join_config_path(&PathBuf::from("darkfid.toml"))?
     };
 
-    let loglevel = if args.verbose {
-        LevelFilter::Debug
-    } else if args.trace {
-        LevelFilter::Trace
-    } else {
-        LevelFilter::Info
+    let mut verbosity_level = 0;
+    verbosity_level += matches.occurrences_of("verbose");
+    let loglevel = match verbosity_level {
+        0 => LevelFilter::Info,
+        1 => LevelFilter::Debug,
+        _ => LevelFilter::Trace,
     };
 
     TermLogger::init(

+ 8 - 7
src/bin/drk.rs

@@ -2,7 +2,7 @@ use std::{path::PathBuf, str::FromStr};
 
 #[macro_use]
 extern crate prettytable;
-use clap::Parser;
+use clap::{IntoApp, Parser};
 use log::debug;
 use prettytable::{format, Table};
 use serde_json::{json, Value};
@@ -331,6 +331,7 @@ async fn start(config: &DrkConfig, options: CliDrk) -> Result<()> {
 #[async_std::main]
 async fn main() -> Result<()> {
     let args = CliDrk::parse();
+    let matches = CliDrk::into_app().get_matches();
 
     let config_path = if args.config.is_some() {
         expand_path(&args.config.clone().unwrap())?
@@ -338,12 +339,12 @@ async fn main() -> Result<()> {
         join_config_path(&PathBuf::from("drk.toml"))?
     };
 
-    let loglevel = if args.verbose {
-        LevelFilter::Debug
-    } else if args.trace {
-        LevelFilter::Trace
-    } else {
-        LevelFilter::Info
+    let mut verbosity_level = 0;
+    verbosity_level += matches.occurrences_of("verbose");
+    let loglevel = match verbosity_level {
+        0 => LevelFilter::Info,
+        1 => LevelFilter::Debug,
+        _ => LevelFilter::Trace,
     };
 
     TermLogger::init(

+ 8 - 7
src/bin/gatewayd.rs

@@ -1,7 +1,7 @@
 use std::{path::PathBuf, sync::Arc};
 
 use async_executor::Executor;
-use clap::Parser;
+use clap::{IntoApp, Parser};
 use easy_parallel::Parallel;
 use log::debug;
 use simplelog::{ColorChoice, LevelFilter, TermLogger, TerminalMode};
@@ -30,6 +30,7 @@ async fn start(executor: Arc<Executor<'_>>, config: &GatewaydConfig) -> Result<(
 #[async_std::main]
 async fn main() -> Result<()> {
     let args = CliGatewayd::parse();
+    let matches = CliGatewayd::into_app().get_matches();
 
     let config_path = if args.config.is_some() {
         expand_path(&args.config.unwrap())?
@@ -37,12 +38,12 @@ async fn main() -> Result<()> {
         join_config_path(&PathBuf::from("gatewayd.toml"))?
     };
 
-    let loglevel = if args.verbose {
-        LevelFilter::Debug
-    } else if args.trace {
-        LevelFilter::Trace
-    } else {
-        LevelFilter::Info
+    let mut verbosity_level = 0;
+    verbosity_level += matches.occurrences_of("verbose");
+    let loglevel = match verbosity_level {
+        0 => LevelFilter::Info,
+        1 => LevelFilter::Debug,
+        _ => LevelFilter::Trace,
     };
 
     TermLogger::init(

+ 8 - 17
src/cli/cli_parser.rs

@@ -92,11 +92,8 @@ pub struct CliDrk {
     #[clap(short, long)]
     pub config: Option<String>,
     /// Increase verbosity
-    #[clap(short, long)]
-    pub verbose: bool,
-    /// Show event trace
-    #[clap(short, long)]
-    pub trace: bool,
+    #[clap(short, parse(from_occurrences))]
+    pub verbose: u8,
     #[clap(subcommand)]
     pub command: Option<CliDrkSubCommands>,
 }
@@ -109,8 +106,8 @@ pub struct CliGatewayd {
     #[clap(short, long)]
     pub config: Option<String>,
     /// Increase verbosity
-    #[clap(short, long)]
-    pub verbose: bool,
+    #[clap(short, parse(from_occurrences))]
+    pub verbose: u8,
     /// Show event trace
     #[clap(short, long)]
     pub trace: bool,
@@ -127,11 +124,8 @@ pub struct CliDarkfid {
     #[clap(long)]
     pub cashier: Option<String>,
     /// Increase verbosity
-    #[clap(short, long)]
-    pub verbose: bool,
-    /// Show event trace
-    #[clap(short, long)]
-    pub trace: bool,
+    #[clap(short, parse(from_occurrences))]
+    pub verbose: u8,
     /// Refresh the wallet and slabstore
     #[clap(short, long)]
     pub refresh: bool,
@@ -148,11 +142,8 @@ pub struct CliCashierd {
     #[clap(short, long)]
     pub address: bool,
     /// Increase verbosity
-    #[clap(short, long)]
-    pub verbose: bool,
-    /// Show event trace
-    #[clap(short, long)]
-    pub trace: bool,
+    #[clap(short, parse(from_occurrences))]
+    pub verbose: u8,
     /// Refresh the wallet and slabstore
     #[clap(short, long)]
     pub refresh: bool,