build-pretty

Crates.iobuild-pretty
lib.rsbuild-pretty
version1.0.0
sourcesrc
created_at2022-05-04 04:34:31.039906
updated_at2022-05-04 04:34:31.039906
descriptionPretty to your custom Build Script(build.sh) log displaying!
homepage
repositoryhttps://github.com/usagi/build-pretty
max_upload_size
id580190
size23,072
Usagi Ito (usagi)

documentation

https://docs.rs/build-pretty/

README

githubcrates-iodocs-rs

image1

build-pretty

This lib crate is one of workarround solution for log displaying of Build Scripts issue such as rust-lang/cargo#985.

Usage

  1. Add build-pretty dependency in [build-dependencies] of your project's Cargo.toml
[package]
...
build = "build.rs"
...
[build-dependencies]
build-pretty = "*"
  1. Write your build.rs with build-pretty:
use build_pretty::{
 build_pretty,
 CommandBuilder
};

fn main()
{
 build_pretty!()
  .enque_command("Drink a cup of tea", CommandBuilder::new_with_arg("echo", "🍵 Green!\n☕ Black!\n🧋 Bubbles!").into())
  .enque_command("Eat a hotdog", CommandBuilder::new_with_arg("echo", "🌭 Hotdog!\n♨️ Hot?\n🐕 Dog!\n🌶️ Hot?\n🐶 Dog?").into())
  .enque_command("ls -l -a", CommandBuilder::new_with_args("ls", &["-l", "-a"]).into())
  .enque_fn("Ofcourse Fn can be used", Box::new(|output|{ *output = "brabrabra\nmewmewmew\nnekonyankonyanko🐾".to_string(); Ok(()) }))
  .enque_command("Sleep", CommandBuilder::new_with_arg("echo", "😴 I'm sleee....\n💤...\n🛌....pyyyyy....").into());
}

and then:

image1

Examples:

Features:

  • std::process::Command runner with STDOUT/STRERR log capturing!
  • Fn runner with String output capturing!
  • cargo_warning_ln! macro, it's also to Build Script version println!.
  • runtime message customize feature. on/off, change message detail as your like with easy template keywords.
  • i18n subsystem support. (using rust-i18n)
    • Currently supported: en ja
    • Welcome your additional language support PR!😆

LICENSE

Author

Commit count: 1

cargo fmt