#build-script #build #script #log #pretty #custom

build-pretty

Pretty to your custom Build Script(build.sh) log displaying!

1 stable release

1.0.0 May 4, 2022

#551 in Debugging

MIT license

19KB
445 lines

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

Dependencies

~7–9.5MB
~171K SLoC