feat: upgrade clap_verbosity_flag
All checks were successful
/ build (push) Successful in 2s
/ check (push) Successful in 7s

Adds tracing support which simplyfies code.
This commit is contained in:
Jalil David Salamé Messina 2024-11-23 13:09:26 +01:00
parent d98c4202f4
commit 60aed649b1
Signed by: jalil
GPG key ID: F016B9E770737A0B
3 changed files with 12 additions and 28 deletions

View file

@ -16,7 +16,7 @@ use clap_verbosity_flag::Verbosity;
use http::StatusCode;
use miette::{bail, ensure, Context, IntoDiagnostic, Result};
use tokio::io::AsyncWriteExt;
use tracing::{debug, error, info, level_filters::LevelFilter, trace, warn};
use tracing::{debug, error, info, trace, warn};
use tracing_subscriber::EnvFilter;
mod password;
@ -28,7 +28,7 @@ const DEFAULT_SALT: &str = "UpdateMyDNS";
#[derive(Debug, Parser)]
struct Opts {
#[command(flatten)]
verbosity: Verbosity,
verbosity: Verbosity<clap_verbosity_flag::WarnLevel>,
/// Ip address of the server
#[arg(long, default_value = "127.0.0.1")]
@ -151,28 +151,13 @@ fn main() -> Result<()> {
// parse cli arguments
let mut args = Opts::parse();
debug!("{args:?}");
// configure logger
let subscriber = tracing_subscriber::FmtSubscriber::builder()
.without_time()
.with_env_filter(
EnvFilter::builder()
.with_default_directive(
if args.verbosity.is_present() {
match args.verbosity.log_level_filter() {
clap_verbosity_flag::LevelFilter::Off => LevelFilter::OFF,
clap_verbosity_flag::LevelFilter::Error => LevelFilter::ERROR,
clap_verbosity_flag::LevelFilter::Warn => LevelFilter::WARN,
clap_verbosity_flag::LevelFilter::Info => LevelFilter::INFO,
clap_verbosity_flag::LevelFilter::Debug => LevelFilter::DEBUG,
clap_verbosity_flag::LevelFilter::Trace => LevelFilter::TRACE,
}
} else {
LevelFilter::WARN
}
.into(),
)
.with_default_directive(args.verbosity.tracing_level_filter().into())
.from_env_lossy(),
)
.finish();
@ -180,6 +165,8 @@ fn main() -> Result<()> {
.into_diagnostic()
.wrap_err("setting global tracing subscriber")?;
debug!("{args:?}");
// process subcommand
if let Some(cmd) = args.subcommand.take() {
return cmd.process(&args);