generated from PlexSheep/baserepo
Compare commits
No commits in common. "c6afa063ef8f877b28494f3c41de73afc99e1826" and "6a7974a0a6a043c75f7b42d957d188aa318ec27f" have entirely different histories.
c6afa063ef
...
6a7974a0a6
2 changed files with 17 additions and 51 deletions
|
@ -1,41 +0,0 @@
|
||||||
use clap::Parser;
|
|
||||||
use libpt_cli::args::VerbosityLevel;
|
|
||||||
use libpt_cli::{clap, printing};
|
|
||||||
use libpt_log::{debug, Logger};
|
|
||||||
|
|
||||||
/// This is the help
|
|
||||||
///
|
|
||||||
/// This is more help
|
|
||||||
#[derive(Parser, Debug)]
|
|
||||||
struct Cli {
|
|
||||||
// already has documentation
|
|
||||||
#[command(flatten)]
|
|
||||||
verbosity: VerbosityLevel,
|
|
||||||
|
|
||||||
/// texts to be echoed
|
|
||||||
#[arg(required = true)]
|
|
||||||
text: Vec<String>,
|
|
||||||
|
|
||||||
/// try to be more machine readable
|
|
||||||
#[arg(short, long)]
|
|
||||||
machine: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
let cli = Cli::parse();
|
|
||||||
let _logger = Logger::builder()
|
|
||||||
.max_level(cli.verbosity.level())
|
|
||||||
.show_time(false)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
debug!("logger initialized with level: {}", cli.verbosity.level());
|
|
||||||
|
|
||||||
if !cli.machine {
|
|
||||||
let text = cli.text.join(" ");
|
|
||||||
printing::blockprint(text, console::Color::Green);
|
|
||||||
} else {
|
|
||||||
for text in cli.text {
|
|
||||||
println!("{text}")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -94,9 +94,9 @@ Author: {author-with-newline}
|
||||||
///
|
///
|
||||||
/// // Level might be None if the user wants no output at all.
|
/// // Level might be None if the user wants no output at all.
|
||||||
/// // for the 'tracing' level:
|
/// // for the 'tracing' level:
|
||||||
/// let level: Level = opts.verbose.level();
|
/// let level: Option<Level> = opts.verbose.level();
|
||||||
/// // for the 'log' level:
|
/// // for the 'log' level:
|
||||||
/// let llevel: log::Level = opts.verbose.level_for_log_crate();
|
/// let llevel: Option<log::Level> = opts.verbose.level_for_log_crate();
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
#[derive(Parser, Clone, PartialEq, Eq, Hash)]
|
#[derive(Parser, Clone, PartialEq, Eq, Hash)]
|
||||||
|
@ -134,20 +134,27 @@ impl VerbosityLevel {
|
||||||
}
|
}
|
||||||
#[inline]
|
#[inline]
|
||||||
fn value(&self) -> i8 {
|
fn value(&self) -> i8 {
|
||||||
Self::level_value(Level::INFO) - (self.quiet as i8).min(10) + (self.verbose as i8).min(10)
|
let v = Self::level_value(Level::INFO) - (self.quiet as i8) + (self.verbose as i8);
|
||||||
|
if v > Self::level_value(Level::TRACE) {
|
||||||
|
Self::level_value(Level::TRACE)
|
||||||
|
} else {
|
||||||
|
v
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// get the [Level] for that VerbosityLevel
|
/// get the [Level] for that VerbosityLevel
|
||||||
|
///
|
||||||
|
/// [None] means that absolutely no output is wanted (completely quiet)
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn level(&self) -> Level {
|
pub fn level(&self) -> Option<Level> {
|
||||||
match self.value() {
|
Some(match self.value() {
|
||||||
0 => Level::ERROR,
|
0 => Level::ERROR,
|
||||||
1 => Level::WARN,
|
1 => Level::WARN,
|
||||||
2 => Level::INFO,
|
2 => Level::INFO,
|
||||||
3 => Level::DEBUG,
|
3 => Level::DEBUG,
|
||||||
4 => Level::TRACE,
|
4 => Level::TRACE,
|
||||||
_ => Level::ERROR,
|
_ => return None,
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/// get the [log::Level] for that VerbosityLevel
|
/// get the [log::Level] for that VerbosityLevel
|
||||||
|
@ -156,14 +163,14 @@ impl VerbosityLevel {
|
||||||
///
|
///
|
||||||
/// [None] means that absolutely no output is wanted (completely quiet)
|
/// [None] means that absolutely no output is wanted (completely quiet)
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn level_for_log_crate(&self) -> log::Level {
|
pub fn level_for_log_crate(&self) -> Option<log::Level> {
|
||||||
match self.level() {
|
self.level().map(|ll| match ll {
|
||||||
Level::TRACE => log::Level::Trace,
|
Level::TRACE => log::Level::Trace,
|
||||||
Level::DEBUG => log::Level::Debug,
|
Level::DEBUG => log::Level::Debug,
|
||||||
Level::INFO => log::Level::Info,
|
Level::INFO => log::Level::Info,
|
||||||
Level::WARN => log::Level::Warn,
|
Level::WARN => log::Level::Warn,
|
||||||
Level::ERROR => log::Level::Error,
|
Level::ERROR => log::Level::Error,
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|
Reference in a new issue