mirror of
https://github.com/nushell/nushell.git
synced 2025-05-28 02:21:19 +00:00
Closes #6337 and #5366. Prior to this PR, when "shelling out" to cmd.exe on Windows we were not trimming quotes correctly: ```bash 〉^echo "foo" \"foo\" ``` After this change, we do: ```bash 〉^echo "foo" foo ``` ### Breaking Change I ended up removing `dir` from the list of supported cmd.exe internal commands as part of this PR. For this PR, I extracted the argument-cleaning-and-expanding code from `spawn_simple_command()` for reuse in `spawn_cmd_command()`. This means that we now expand globs, which broke some tests for the `dir` cmd.exe internal command. I probably could have kept the tests working, but... tbh, I don't think it's worth it. I don't want to make the `cmd.exe` functionality any more complicated than it already is, and calling `dir` from Nu is always going to be weird+hacky compared to `ls`.
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.