nushell/crates
Eric Hodel d5677625a7
Add is-terminal to determine if stdin/out/err are a terminal (#10970)
# Description

I'm not sure if "is-terminal" is the best name for this command as there
is also "term size". Uses
[`is_terminal()`](https://doc.rust-lang.org/stable/std/io/trait.IsTerminal.html#tymethod.is_terminal)
which is cross-platform.

Possible alternative names:
* `term is-tty --stdout`
* `term is-tty stdout`
* `term is-terminal stdout`

If multiple streams are provided an error is returned. The error span
covers all arguments as the incompatible one is not known. This may be
new?

Fixes #10517

# User-Facing Changes

* Add `is-terminal` to check if stdin, stdout, or stderr are a terminal
(TTY)

# Tests + Formatting

The nu tests always redirect stdin, stdout, and stderr so a positive
test case is not possible without extra work

- 🟢 `toolkit fmt`
- 🟢 `toolkit clippy`
- 🟢 `toolkit test`
- 🟢 `toolkit test stdlib`

# After Submitting

The new command will be added automatically

---------

Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-21 20:48:39 -06:00
..
nu-cli Convert FileNotFoundCustom to named fields (#11123) 2023-11-21 17:30:21 -06:00
nu-cmd-base Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-cmd-dataframe Convert FileNotFoundCustom to named fields (#11123) 2023-11-21 17:30:21 -06:00
nu-cmd-extra Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-cmd-lang Use record API in describe --detailed (#11075) 2023-11-21 17:49:23 +01:00
nu-color-config Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-command Add is-terminal to determine if stdin/out/err are a terminal (#10970) 2023-11-21 20:48:39 -06:00
nu-engine Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-explore Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-glob Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-json Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-lsp Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-parser Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-path Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-plugin Convert PluginFailedToEncode to named fields (#11125) 2023-11-21 17:38:58 -06:00
nu-pretty-hex Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-protocol Convert PluginFailedToEncode to named fields (#11125) 2023-11-21 17:38:58 -06:00
nu-std Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-system Bump procfs to 0.16.0 (#11115) 2023-11-20 21:22:35 +01:00
nu-table Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-term-grid Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-test-support Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu-utils Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu_plugin_custom_values Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu_plugin_example Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu_plugin_formats Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu_plugin_gstat Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu_plugin_inc Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
nu_plugin_python remove vectorize_over_list from python plugin (#9905) 2023-08-03 16:46:48 +02:00
nu_plugin_query Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.