1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#![doc = include_str!("../README.md")]
pub use atty::Stream;
pub fn on(stream: Stream) -> bool {
if !atty::is(stream) {
true
} else if std::env::consts::OS == "windows" {
std::env::var("CI").is_ok()
|| std::env::var("WT_SESSION").is_ok()
|| std::env::var("ConEmuTask") == Ok("{cmd:Cmder}".into())
|| std::env::var("TERM_PROGRAM") == Ok("vscode".into())
|| std::env::var("TERM") == Ok("xterm-256color".into())
|| std::env::var("TERM") == Ok("alacritty".into())
} else if std::env::var("TERM") == Ok("linux".into()) {
false
} else {
let ctype = std::env::var("LC_ALL")
.or_else(|_| std::env::var("LC_CTYPE"))
.or_else(|_| std::env::var("LANG"))
.unwrap_or_else(|_| "".into())
.to_uppercase();
ctype.ends_with("UTF8") || ctype.ends_with("UTF-8")
}
}