显示软件包…
1 个不稳定版本
0.0.1 | 2023年12月16日 |
---|
#23 在 #verbose
34 每月下载次数
用于 4 crates
4KB
ccli
通用命令行接口。
//! Common command line interface.
use anyhow::Error;
pub use clap::{self, Parser};
pub use color_eyre::{eyre::eyre, Result};
use tracing_subscriber::filter::EnvFilter;
/// Shared application interface.
pub trait App: Parser {
/// Verbose logging level.
fn verbose(&self) -> u8;
/// Run application.
fn run(&self) -> anyhow::Result<()>;
/// Start application.
fn start() -> Result<()> {
color_eyre::install()?;
let app = Self::parse();
let name = Self::command().get_name().to_string();
let env =
EnvFilter::try_from_default_env().unwrap_or(EnvFilter::new(match app.verbose() {
0 => format!("{name}=info"),
1 => format!("{name}=debug"),
2 => "debug".into(),
_ => "trace".into(),
}));
tracing_subscriber::fmt().with_env_filter(env).init();
app.run().map_err(|e| eyre!("Failed to run app, {e}"))?;
Ok(())
}
}
许可协议
GPL-3.0
依赖关系
~12MB
~209K SLoC