cli: replace atty with std::io::IsTerminal

The `atty` crate is unmaintained[1] and `std::io::IsTerminal` was
stabilized in Rust 1.70.

[1]: https://rustsec.org/advisories/RUSTSEC-2021-0145.html

PR #2526
This commit is contained in:
Martin Nordholts 2023-06-05 20:00:46 +02:00 committed by GitHub
parent 949092fd22
commit 4fcb1b2202
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 7 additions and 27 deletions

View File

@ -43,7 +43,7 @@ jobs:
include: include:
- build: pinned - build: pinned
os: ubuntu-22.04 os: ubuntu-22.04
rust: 1.65.0 rust: 1.70.0
- build: stable - build: stable
os: ubuntu-22.04 os: ubuntu-22.04
rust: stable rust: stable

21
Cargo.lock generated
View File

@ -20,17 +20,6 @@ dependencies = [
"memchr", "memchr",
] ]
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi",
"libc",
"winapi",
]
[[package]] [[package]]
name = "base64" name = "base64"
version = "0.20.0" version = "0.20.0"
@ -171,7 +160,6 @@ dependencies = [
name = "grep-cli" name = "grep-cli"
version = "0.1.7" version = "0.1.7"
dependencies = [ dependencies = [
"atty",
"bstr", "bstr",
"globset", "globset",
"lazy_static", "lazy_static",
@ -240,15 +228,6 @@ dependencies = [
"regex", "regex",
] ]
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "ignore" name = "ignore"
version = "0.4.20" version = "0.4.20"

View File

@ -343,7 +343,7 @@ $ pkgman install ripgrep_x86
If you're a **Rust programmer**, ripgrep can be installed with `cargo`. If you're a **Rust programmer**, ripgrep can be installed with `cargo`.
* Note that the minimum supported version of Rust for ripgrep is **1.65.0**, * Note that the minimum supported version of Rust for ripgrep is **1.70.0**,
although ripgrep may work with older versions. although ripgrep may work with older versions.
* Note that the binary may be bigger than expected because it contains debug * Note that the binary may be bigger than expected because it contains debug
symbols. This is intentional. To remove debug symbols and therefore reduce symbols. This is intentional. To remove debug symbols and therefore reduce

View File

@ -14,7 +14,6 @@ license = "Unlicense OR MIT"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
atty = "0.2.11"
bstr = "1.1.0" bstr = "1.1.0"
globset = { version = "0.4.10", path = "../globset" } globset = { version = "0.4.10", path = "../globset" }
lazy_static = "1.1.0" lazy_static = "1.1.0"

View File

@ -165,6 +165,8 @@ mod pattern;
mod process; mod process;
mod wtr; mod wtr;
use std::io::IsTerminal;
pub use crate::decompress::{ pub use crate::decompress::{
resolve_binary, DecompressionMatcher, DecompressionMatcherBuilder, resolve_binary, DecompressionMatcher, DecompressionMatcherBuilder,
DecompressionReader, DecompressionReaderBuilder, DecompressionReader, DecompressionReaderBuilder,
@ -215,7 +217,7 @@ pub fn is_readable_stdin() -> bool {
/// Returns true if and only if stdin is believed to be connected to a tty /// Returns true if and only if stdin is believed to be connected to a tty
/// or a console. /// or a console.
pub fn is_tty_stdin() -> bool { pub fn is_tty_stdin() -> bool {
atty::is(atty::Stream::Stdin) std::io::stdin().is_terminal()
} }
/// Returns true if and only if stdout is believed to be connected to a tty /// Returns true if and only if stdout is believed to be connected to a tty
@ -227,11 +229,11 @@ pub fn is_tty_stdin() -> bool {
/// implementations of `ls` will often show one item per line when stdout is /// implementations of `ls` will often show one item per line when stdout is
/// redirected, but will condensed output when printing to a tty. /// redirected, but will condensed output when printing to a tty.
pub fn is_tty_stdout() -> bool { pub fn is_tty_stdout() -> bool {
atty::is(atty::Stream::Stdout) std::io::stdout().is_terminal()
} }
/// Returns true if and only if stderr is believed to be connected to a tty /// Returns true if and only if stderr is believed to be connected to a tty
/// or a console. /// or a console.
pub fn is_tty_stderr() -> bool { pub fn is_tty_stderr() -> bool {
atty::is(atty::Stream::Stderr) std::io::stderr().is_terminal()
} }