use colored::*;
pub fn should_colorize() -> bool {
let is_tty = atty::is(atty::Stream::Stdout);
let is_ci = std::env::var("CI").is_ok();
let no_color = std::env::var("NO_COLOR").is_ok();
is_tty && !is_ci && !no_color
}
pub fn info(msg: &str) {
if should_colorize() {
println!("{}", msg.green().bold());
} else {
println!("[INFO] {msg}");
}
}
pub fn success(msg: &str) {
if should_colorize() {
println!("{}", format!("✓ {msg}").green().bold());
} else {
println!("[SUCCESS] {msg}");
}
}
pub fn error(msg: &str) {
if should_colorize() {
eprintln!("{}", format!("✗ {msg}").red().bold());
} else {
eprintln!("[ERROR] {msg}");
}
}
pub fn warn(msg: &str) {
if should_colorize() {
println!("{}", format!("⚠ {msg}").yellow().bold());
} else {
println!("[WARN] {msg}");
}
}
pub fn build_success() {
if should_colorize() {
println!("{}", "BUILD SUCCESS".green().bold());
} else {
println!("[INFO] BUILD SUCCESS");
}
}
pub fn build_failure() {
if should_colorize() {
eprintln!("{}", "BUILD FAILURE".red().bold());
} else {
eprintln!("[ERROR] BUILD FAILURE");
}
}
pub fn dependency_info(group: &str, artifact: &str, version: &str) {
if should_colorize() {
println!(" {}:{}:{}",
group.cyan(),
artifact.cyan(),
version.yellow()
);
} else {
println!(" {group}:{artifact}:{version}");
}
}