From ad120181994a73807a8a199158841d2e80bd0a51 Mon Sep 17 00:00:00 2001 From: nibon7 Date: Fri, 25 Aug 2023 16:54:44 +0800 Subject: [PATCH] Use built-in is_terminal instead of is_terminal::is_terminal (#9550) # Description This PR tries to remove ~atty~ is-terminal from the entire code base, since ~[atty is unmaintained](https://rustsec.org/advisories/RUSTSEC-2021-0145) and~ [`is_terminal` has been stabilized](https://blog.rust-lang.org/2023/06/01/Rust-1.70.0.html#isterminal) in rust 1.70.0. cc @fdncred # User-Facing Changes # Tests + Formatting # After Submitting --- Cargo.lock | 4 ---- Cargo.toml | 1 - crates/nu-cli/Cargo.toml | 1 - crates/nu-cli/src/repl.rs | 3 +-- crates/nu-command/Cargo.toml | 1 - crates/nu-command/src/viewers/table.rs | 2 +- crates/nu-system/Cargo.toml | 1 - crates/nu-system/src/foreground.rs | 2 +- src/terminal.rs | 2 +- 9 files changed, 4 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 84a95ff72d91..dc7335a0d530 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2564,7 +2564,6 @@ dependencies = [ "criterion", "crossterm", "ctrlc", - "is-terminal", "log", "miette", "mimalloc", @@ -2621,7 +2620,6 @@ dependencies = [ "crossterm", "fancy-regex", "fuzzy-matcher", - "is-terminal", "is_executable", "log", "miette", @@ -2753,7 +2751,6 @@ dependencies = [ "htmlescape", "indexmap 2.0.0", "indicatif", - "is-terminal", "itertools", "libc", "log", @@ -2956,7 +2953,6 @@ name = "nu-system" version = "0.84.1" dependencies = [ "chrono", - "is-terminal", "libc", "libproc", "log", diff --git a/Cargo.toml b/Cargo.toml index 76cae96acba8..81999866f403 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -93,7 +93,6 @@ nix = { version = "0.26", default-features = false, features = [ "fs", "term", ] } -is-terminal = "0.4.8" [dev-dependencies] nu-test-support = { path = "./crates/nu-test-support", version = "0.84.1" } diff --git a/crates/nu-cli/Cargo.toml b/crates/nu-cli/Cargo.toml index 1c161d3825f2..4bad11fe826c 100644 --- a/crates/nu-cli/Cargo.toml +++ b/crates/nu-cli/Cargo.toml @@ -32,7 +32,6 @@ crossterm = "0.26" fancy-regex = "0.11" fuzzy-matcher = "0.3" is_executable = "1.0" -is-terminal = "0.4.8" log = "0.4" miette = { version = "5.10", features = ["fancy-no-backtrace"] } once_cell = "1.18" diff --git a/crates/nu-cli/src/repl.rs b/crates/nu-cli/src/repl.rs index f52a1cbce03f..d40acad3c52a 100644 --- a/crates/nu-cli/src/repl.rs +++ b/crates/nu-cli/src/repl.rs @@ -6,7 +6,6 @@ use crate::{ NuHighlighter, NuValidator, NushellPrompt, }; use crossterm::cursor::SetCursorStyle; -use is_terminal::IsTerminal; use log::{trace, warn}; use miette::{ErrReport, IntoDiagnostic, Result}; use nu_cmd_base::util::get_guaranteed_cwd; @@ -26,7 +25,7 @@ use reedline::{ SqliteBackedHistory, Vi, }; use std::{ - io::{self, Write}, + io::{self, IsTerminal, Write}, path::Path, sync::atomic::Ordering, time::Instant, diff --git a/crates/nu-command/Cargo.toml b/crates/nu-command/Cargo.toml index 784bc70965ac..1cc44ea8e7f7 100644 --- a/crates/nu-command/Cargo.toml +++ b/crates/nu-command/Cargo.toml @@ -49,7 +49,6 @@ fs_extra = "1.3" htmlescape = "0.3" indexmap = "2.0" indicatif = "0.17" -is-terminal = "0.4.8" itertools = "0.10" log = "0.4" lscolors = { version = "0.15", default-features = false, features = ["nu-ansi-term"] } diff --git a/crates/nu-command/src/viewers/table.rs b/crates/nu-command/src/viewers/table.rs index 25d489a25eb8..dacadc628711 100644 --- a/crates/nu-command/src/viewers/table.rs +++ b/crates/nu-command/src/viewers/table.rs @@ -1,4 +1,3 @@ -use is_terminal::IsTerminal; use lscolors::{LsColors, Style}; use nu_color_config::color_from_hex; use nu_color_config::{StyleComputer, TextStyle}; @@ -15,6 +14,7 @@ use nu_table::{ TableOutput, }; use nu_utils::get_ls_colors; +use std::io::IsTerminal; use std::sync::Arc; use std::time::Instant; use std::{path::PathBuf, sync::atomic::AtomicBool}; diff --git a/crates/nu-system/Cargo.toml b/crates/nu-system/Cargo.toml index dbae7384cbae..fcf340aac71b 100644 --- a/crates/nu-system/Cargo.toml +++ b/crates/nu-system/Cargo.toml @@ -18,7 +18,6 @@ log = "0.4" [target.'cfg(target_family = "unix")'.dependencies] nix = { version = "0.26", default-features = false, features = ["fs", "term", "process", "signal"] } -is-terminal = "0.4.8" [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] procfs = "0.15" diff --git a/crates/nu-system/src/foreground.rs b/crates/nu-system/src/foreground.rs index e2e3c8047321..b1df11fa4466 100644 --- a/crates/nu-system/src/foreground.rs +++ b/crates/nu-system/src/foreground.rs @@ -83,11 +83,11 @@ impl Drop for ForegroundChild { // It's a simpler version of fish shell's external process handling. #[cfg(unix)] mod fg_process_setup { - use is_terminal::IsTerminal; use nix::{ sys::signal, unistd::{self, Pid}, }; + use std::io::IsTerminal; use std::os::unix::prelude::{CommandExt, RawFd}; // TODO: when raising MSRV past 1.63.0, switch to OwnedFd diff --git a/src/terminal.rs b/src/terminal.rs index 8f8bab6cb547..c87f714d6d46 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -1,11 +1,11 @@ #[cfg(unix)] pub(crate) fn acquire_terminal(interactive: bool) { - use is_terminal::IsTerminal; use nix::{ errno::Errno, sys::signal::{signal, SigHandler, Signal}, unistd, }; + use std::io::IsTerminal; if interactive && std::io::stdin().is_terminal() { // see also: https://www.gnu.org/software/libc/manual/html_node/Initializing-the-Shell.html