nushell/crates
Devyn Cairns 43e349a274
Mitigate the poor interaction between ndots expansion and non-path strings (#13218)
# Description

@hustcer reported that slashes were disappearing from external args
since #13089:

```
$> ossutil ls oss://abc/b/c
Error: invalid cloud url: "oss:/abc/b/c", please make sure the url starts with: "oss://"

$> ossutil ls 'oss://abc/b/c'
Error: oss: service returned error: StatusCode=403, ErrorCode=UserDisable, ErrorMessage="UserDisable", RequestId=66791EDEFE87B73537120838, Ec=0003-00000801, Bucket=abc, Object=
```

I narrowed this down to the ndots handling, since that does path parsing
and path reconstruction in every case. I decided to change that so that
it only activates if the string contains at least `...`, since that
would be the minimum trigger for ndots, and also to not activate it if
the string contains `://`, since it's probably undesirable for a URL.

Kind of a hack, but I'm not really sure how else we decide whether
someone wants ndots or not.

# User-Facing Changes
- bare strings not containing ndots are not modified
- bare strings containing `://` are not modified

# Tests + Formatting
Added tests to prevent regression.
2024-06-24 16:39:01 -07:00
..
nu_plugin_custom_values Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu_plugin_example Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu_plugin_formats Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu_plugin_gstat Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu_plugin_inc Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu_plugin_nu_example Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu_plugin_polars Polars default infer (#13193) 2024-06-22 07:23:42 -05:00
nu_plugin_python Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu_plugin_query Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu_plugin_stress_internals Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu-cli Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu-cmd-base Improves commands that support range input (#13113) 2024-06-18 07:19:13 -05:00
nu-cmd-extra Make which-support feature non-optional (#13125) 2024-06-12 20:04:12 -05:00
nu-cmd-lang Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu-cmd-plugin Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu-color-config Move most of the peculiar argument handling for external calls into the parser (#13089) 2024-06-19 21:00:03 -07:00
nu-command Mitigate the poor interaction between ndots expansion and non-path strings (#13218) 2024-06-24 16:39:01 -07:00
nu-derive-value Allow missing fields in derived FromValue::from_value calls (#13206) 2024-06-22 13:31:09 -07:00
nu-engine Table help rendering (#13182) 2024-06-19 20:12:25 -05:00
nu-explore nu-explore: Add vertical lines && fix index/transpose issue (#13147) 2024-06-21 12:07:57 -07:00
nu-glob bump version to 0.94.3 (#13055) 2024-06-05 06:52:40 +08:00
nu-json bump version to 0.94.3 (#13055) 2024-06-05 06:52:40 +08:00
nu-lsp bump version to 0.94.3 (#13055) 2024-06-05 06:52:40 +08:00
nu-parser Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu-path add $nu.data-dir for completions and $nu.cache-dir for other uses (#13122) 2024-06-11 15:10:31 -04:00
nu-plugin Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu-plugin-core bump version to 0.94.3 (#13055) 2024-06-05 06:52:40 +08:00
nu-plugin-engine Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu-plugin-protocol Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu-plugin-test-support Allow plugins to report their own version and store it in the registry (#12883) 2024-06-21 06:27:09 -05:00
nu-pretty-hex bump version to 0.94.3 (#13055) 2024-06-05 06:52:40 +08:00
nu-protocol Fix usage parsing for commands defined in CRLF (windows) files (#13212) 2024-06-23 18:43:05 -05:00
nu-std Return an empty list when no std help --find results are found (#13160) 2024-06-15 12:27:55 -05:00
nu-system fix nu-system build on arm64 FreeBSD (#13196) 2024-06-21 03:03:10 -07:00
nu-table Improve performance of explore - 1 (#13116) 2024-06-12 18:35:04 -07:00
nu-term-grid bump version to 0.94.3 (#13055) 2024-06-05 06:52:40 +08:00
nu-test-support Move most of the peculiar argument handling for external calls into the parser (#13089) 2024-06-19 21:00:03 -07:00
nu-utils Add shape_glob_interpolation to default_config.nu (#13198) 2024-06-21 06:17:29 -05:00
nuon Move most of the peculiar argument handling for external calls into the parser (#13089) 2024-06-19 21:00:03 -07:00
README.md

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.