gory

license-badge build codecov crates.io Minimum rustc

Add a little color to the task

gory was created to provide super simple color usage for Linux terminals in a well documented way. gory will automatically detect the abscence of a TTY and disable color output. However color can also be disabled manually via the env variable TERM_COLOR or forced on or off at runtime as needed.

Example:
Display colors

Quick links

Usage

Requires rustc >= 1.30

This minimum rustc requirement is driven by the enhancements made to Rust's std::error::Error handling improvements

  1. Import gory into your project via Cargo.toml toml [dependencies] gory = "0.1"
  2. Use all of gory as its simple and tiny rust use gory::*;
  3. Call functions off the default Colorable types String and &'static str ```rust use gory::*;

    fn main() { print!("{} ", format!("\e[1;{}m", Color::Red).red()); print!("{} ", "red".red()); println!(); } ```

Get String

To get the wrapped String out of a ColorString just dereference it.

```rust use gory::*;

fn main() { let cstr = String::from("foo").red(); assert!(String::from("foo"), *cstr); } ```

Control use

Color output can be enabled or disabled using the TERM_COLOR varible.

gory will automatically detect whether a terminal is attached and if so and TERM_COLOR is truthy or not set it will automatically use color when specified to do so in the code. If TERM_COLOR is set to something falsy color will not be emitted despited an attached tty or use of color functions in the code.

Additionally however for testing or for other reasons it may be nice to force color to be enabled or disabled regardless of the presence of a tty or the the env var. This can be done at runtime by invoking the function Color::force(val: Option<bool>) and giving it true to force on and false to force off and None to return to automatic control.

```rust use gory::*;

fn main() { Color::force(Some(true)); Color::force(Some(false)); Color::force(None); } ```

Contribute

Pull requests are always welcome. However understand that they will be evaluated purely on whether or not the change fits with my goals/ideals for the project.

Git-Hook

Enable the git hooks to have automatic version increments bash cd ~/Projects/gory git config core.hooksPath .githooks

License

This project is licensed under either of: * MIT license LICENSE-MIT or http://opensource.org/licenses/MIT * Apache License, Version 2.0 LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


Backlog

Changelog