chore(deps): enable the supports-color feature of owo-colors

This commit is contained in:
Orhun Parmaksız 2023-06-26 17:07:47 +03:00
parent 6c5b807b39
commit 3d828e776d
No known key found for this signature in database
GPG key ID: F83424824B3E4B90
5 changed files with 77 additions and 16 deletions

39
Cargo.lock generated
View file

@ -41,6 +41,17 @@ dependencies = [
"libc",
]
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi 0.1.19",
"libc",
"winapi",
]
[[package]]
name = "autocfg"
version = "1.1.0"
@ -421,6 +432,15 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "hermit-abi"
version = "0.2.6"
@ -505,6 +525,12 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "is_ci"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "616cde7c720bb2bb5824a224687d8f77bfd38922027f01d825cd7453be5099fb"
[[package]]
name = "itoa"
version = "1.0.6"
@ -724,6 +750,9 @@ name = "owo-colors"
version = "3.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
dependencies = [
"supports-color",
]
[[package]]
name = "parking_lot"
@ -996,6 +1025,16 @@ dependencies = [
"wayland-client",
]
[[package]]
name = "supports-color"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ba6faf2ca7ee42fdd458f4347ae0a9bd6bcc445ad7cb57ad82b383f18870d6f"
dependencies = [
"atty",
"is_ci",
]
[[package]]
name = "syn"
version = "1.0.109"

View file

@ -37,7 +37,7 @@ display_type = "default"
output_type = "default"
[cli.colors]
; available colors are defined in https://docs.rs/colored/latest/colored/enum.Color.html
; available colors are defined in https://docs.rs/owo-colors/latest/owo_colors/colored/enum.Color.html
; default color for the symbols
default_color = "bright black"
; section colors

View file

@ -18,7 +18,7 @@ sysctl = "0.5.4"
thiserror = "1.0.40"
lazy_static = "1.4.0"
rayon = "1.7.0"
owo-colors = "3.5.0"
owo-colors = { version = "3.5.0", features = ["supports-colors"] }
serde = { version = "1.0.164", features = ["derive"] }
serde_json = "1.0.97"
dirs-next = "2.0.0"

View file

@ -2,7 +2,7 @@ use crate::config::Config;
use crate::error::Result;
use crate::sysctl::r#type::DisplayType;
use crate::sysctl::section::Section;
use owo_colors::colored::*;
use owo_colors::{OwoColorize, Stream::Stdout};
use serde::{Deserialize, Serialize};
use std::fmt::Write as _;
use std::io::Write;
@ -67,8 +67,8 @@ impl Parameter {
let _ = write!(
result,
"{}{}",
v.color(section_color),
".".color(config.cli.color.default_color)
v.if_supports_color(Stdout, |v| v.color(section_color)),
".".if_supports_color(Stdout, |v| v.color(config.cli.color.default_color))
);
} else {
result += v;
@ -98,13 +98,17 @@ impl Parameter {
.enumerate()
.for_each(|(i, component)| {
if i != total_components - 1 {
*component = component.color(section_color).to_string();
*component = component
.if_supports_color(Stdout, |v| v.color(section_color))
.to_string();
} else if config.cli.display_type != DisplayType::Name {
*component = format!(
"{} {} {}",
component,
"=".color(config.cli.color.default_color),
self.value.replace('\n', " ").bold()
"=".if_supports_color(Stdout, |v| v.color(config.cli.color.default_color)),
self.value
.replace('\n', " ")
.if_supports_color(Stdout, |v| v.bold())
);
}
});
@ -118,10 +122,18 @@ impl Parameter {
writeln!(output, "{}", self.get_colored_name(config))?;
}
DisplayType::Value => {
writeln!(output, "{}", self.value.bold())?;
writeln!(
output,
"{}",
self.value.if_supports_color(Stdout, |v| v.bold())
)?;
}
DisplayType::Binary => {
write!(output, "{}", self.value.bold())?;
write!(
output,
"{}",
self.value.if_supports_color(Stdout, |v| v.bold())
)?;
}
DisplayType::Default => {
for value in self.value.lines() {
@ -129,8 +141,8 @@ impl Parameter {
output,
"{} {} {}",
self.get_colored_name(config),
"=".color(config.cli.color.default_color),
value.bold(),
"=".if_supports_color(Stdout, |v| v.color(config.cli.color.default_color)),
value.if_supports_color(Stdout, |v| v.bold()),
)?;
}
}

View file

@ -1,4 +1,5 @@
use owo_colors::colored::*;
use owo_colors::colored::Color;
use owo_colors::{OwoColorize, Stream::Stdout};
use std::fmt::Display;
use std::io::{Result as IoResult, Write};
@ -79,13 +80,22 @@ impl TreeNode {
write!(
output,
"{} ",
if *last { " " } else { VERTICAL_STR }.color(connector_color)
if *last { " " } else { VERTICAL_STR }
.if_supports_color(Stdout, |v| v.color(connector_color))
)?;
}
if *last_connector {
write!(output, "{} ", LAST_HORIZONTAL_STR.color(connector_color))?;
write!(
output,
"{} ",
LAST_HORIZONTAL_STR.if_supports_color(Stdout, |v| v.color(connector_color))
)?;
} else {
write!(output, "{} ", HORIZONTAL_STR.color(connector_color))?;
write!(
output,
"{} ",
HORIZONTAL_STR.if_supports_color(Stdout, |v| v.color(connector_color))
)?;
}
}
writeln!(output, "{}", self.value)?;