10 releases
0.1.14 | Dec 31, 2020 |
---|---|
0.1.13 | Dec 31, 2020 |
0.0.11 | Dec 25, 2020 |
#589 in Command-line interface
Used in 8 crates
(3 directly)
17KB
203 lines
gory
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:
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
- Import
gory
into your project viaCargo.toml
[dependencies] gory = "0.1"
- Use all of
gory
as its simple and tinyuse gory::*;
- Call functions off the default
Colorable
typesString
and&'static str
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.
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.
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
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
- Improve documentation
- Support more pre-defined colors like
orange
? - Support styles like
underline
?
Changelog
- 12/30/2020
- Corrected the minimum rustc badge and added a description
Dependencies
~58KB