leg
leg copied to clipboard
🔈 Nicer CLIs foz lazy devs
leg
🔈 Elegant print for lazy devs
Make your CLIs nicer with minimal effort. Simple wrapper on top of:
-
async-std printing macros.
- Prints to
stderr
to be nice with your pipes. Except theresult
function, as expected.
- Prints to
-
colored crate:
- Works on Linux, MacOS, and Windows (Powershell).
- Respects CLICOLOR/CLICOLOR_FORCE and NO_COLOR behavior.
Do not use this crate in libraries! You should use the log one instead. Visit this section of the book Command line apps in Rust if you want to learn more about this topic.
Install
With cargo-edit installed run:
cargo add leg
Use
📝 Please visit tests and full documentation if you want to learn the details.
use leg::*;
use async_std::{eprint, eprintln};
#[async_std::main]
async fn main() {
head("leg", Some("🔈"), Some("1.0.0")).await;
info("Informational message", None, None).await;
success("Successful operation", None, None).await;
warn("Warn message", None, None).await;
error("Error message", None, None).await;
wait("Waiting for something", None, None).await;
done("Something finished", None, None).await;
info("Informational message with scope", Some("myscope"), None).await;
info("Informational message without new line", None, Some(false)).await;
eprintln!(" => same line").await;
eprint!("Not shown").await;
remove().await;
result("To standard output").await;
}