diff --git a/CHANGELOG.md b/CHANGELOG.md index d134e15..68dd4a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Features +- Disable colorized output in case of `TERM=dumb` or `NO_COLOR=1`, see #542 and #555 (@nabijaczleweli) ## Changes diff --git a/src/options.rs b/src/options.rs index 7281a62..edd2391 100644 --- a/src/options.rs +++ b/src/options.rs @@ -1,7 +1,7 @@ use std::fs::File; use std::path::PathBuf; use std::process::{Command, Stdio}; -use std::{cmp, fmt, io}; +use std::{cmp, env, fmt, io}; use anyhow::ensure; use atty::Stream; @@ -298,6 +298,14 @@ impl Options { || !atty::is(Stream::Stdout) { OutputStyleOption::Basic + } else if env::var_os("TERM") + .map(|t| t == "unknown" || t == "dumb") + .unwrap_or(true) + || env::var_os("NO_COLOR") + .map(|t| !t.is_empty()) + .unwrap_or(false) + { + OutputStyleOption::NoColor } else { OutputStyleOption::Full }