use colored::*;
use std::io::IsTerminal;
pub fn supports_color() -> bool {
std::io::stdout().is_terminal() && std::env::var("NO_COLOR").is_err()
}
pub fn print_success(msg: &str) {
if supports_color() {
println!("{}", msg.green().bold());
} else {
println!("{}", msg);
}
}
pub fn print_info(msg: &str) {
if supports_color() {
println!("{}", msg.blue());
} else {
println!("{}", msg);
}
}
pub fn print_warning(msg: &str) {
if supports_color() {
println!("{}", msg.yellow());
} else {
println!("{}", msg);
}
}
pub fn print_error(msg: &str) {
if supports_color() {
println!("{}", msg.red().bold());
} else {
println!("{}", msg);
}
}
pub fn print_banner(msg: &str) {
if supports_color() {
println!("{}", msg.magenta().bold());
} else {
println!("{}", msg);
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_supports_color() {
let _ = supports_color();
}
#[test]
fn test_print_functions() {
print_success("Success test");
print_info("Info test");
print_warning("Warning test");
print_error("Error test");
print_banner("Banner test");
}
}