nushell/crates/nu-command/src
Darren Schroeder 388e84e7ef
update nu-glob based on latest glob 0.3.1 changes (#9099)
# Description
This PR updates `nu-glob` to add the latest changes and updates from
`rust-lang/glob` [v0.3.1](https://github.com/rust-lang/glob).

With these changes you can do this type of globbing
```rust
/// - `?` matches any single character.
///
/// - `*` matches any (possibly empty) sequence of characters.
///
/// - `**` matches the current directory and arbitrary subdirectories. This
///   sequence **must** form a single path component, so both `**a` and `b**`
///   are invalid and will result in an error.  A sequence of more than two
///   consecutive `*` characters is also invalid.
///
/// - `[...]` matches any character inside the brackets.  Character sequences
///   can also specify ranges of characters, as ordered by Unicode, so e.g.
///   `[0-9]` specifies any character between 0 and 9 inclusive. An unclosed
///   bracket is invalid.
///
/// - `[!...]` is the negation of `[...]`, i.e. it matches any characters
///   **not** in the brackets.
///
/// - The metacharacters `?`, `*`, `[`, `]` can be matched by using brackets
///   (e.g. `[?]`).  When a `]` occurs immediately following `[` or `[!` then it
///   is interpreted as being part of, rather then ending, the character set, so
///   `]` and NOT `]` can be matched by `[]]` and `[!]]` respectively.  The `-`
///   character can be specified inside a character sequence pattern by placing
///   it at the start or the end, e.g. `[abc-]`.
```
Example - with character sequences

![image](https://user-images.githubusercontent.com/343840/236266670-03bf9384-4917-4074-9687-2c1c0d8ef34a.png)

Example - with character sequence negation

![image](https://user-images.githubusercontent.com/343840/236266421-73c3ee2c-1d10-4da0-86be-0afb51b50604.png)

Example - normal globbing

![image](https://user-images.githubusercontent.com/343840/236267138-60f22228-b8d3-4bf2-911b-a80560fdfa4f.png)

Example - with character sequences

![image](https://user-images.githubusercontent.com/343840/236267475-8c38fce9-87fe-4544-9757-34d319ce55b8.png)

Not that, if you're using a character sequence by itself, you need to
enclose it in quotes, otherwise nushell will think it's a range. But if
you already have a type of a bare word already, no quotes are necessary,
as in the last example.

# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->

# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.

Make sure you've run and fixed any issues with these commands:

- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect -A clippy::result_large_err` to check that
you're using the standard code style
- `cargo test --workspace` to check that all tests pass
- `cargo run -- crates/nu-std/tests/run.nu` to run the tests for the
standard library

> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->

# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2023-05-08 09:07:01 -05:00
..
bits Require that values that look like numbers parse as numberlike (#8635) 2023-03-28 19:31:38 +13:00
bytes make bytes at use ranges (#8710) 2023-04-03 04:28:36 +12:00
charting fix: fixed typo and improved Value TypeMismatch exceptions (#8324) 2023-03-22 09:47:40 +01:00
conversions Fix into decimal command category (#8932) 2023-04-19 11:39:12 -05:00
database Add pattern matching (#8590) 2023-03-24 14:52:01 +13:00
dataframe Remove old alias implementation (#8797) 2023-04-07 21:09:38 +03:00
date Update some help examples (#8759) 2023-04-05 18:36:00 -05:00
debug Bump tabled dependency to 0.11 (#8922) 2023-04-26 13:56:10 -05:00
deprecated REFACTOR: remove deprecated commands (old-alias) (#9056) 2023-05-04 00:08:07 +02:00
env Add --redirect-combine option to run-external (#8918) 2023-04-28 07:55:48 -05:00
experimental Uniformize usage() and extra_usage() message ending for commands helper. (#8268) 2023-02-28 21:33:02 -08:00
filesystem update nu-glob based on latest glob 0.3.1 changes (#9099) 2023-05-08 09:07:01 -05:00
filters Fix unexpected flattening of data by par-each (Issue #8497) (#9007) 2023-04-26 23:27:27 +02:00
formats Remove old alias implementation (#8797) 2023-04-07 21:09:38 +03:00
generators Document and critically review ShellError variants - Ep. 2 (#8326) 2023-03-06 11:31:07 +01:00
hash optimize hash md5 for binary input (#8860) 2023-04-13 19:29:06 +02:00
math Fix negative precision round with ints (issue #9049) (#9073) 2023-05-03 23:07:32 +02:00
misc REFACTOR: move source out of deprecated commands (#9060) 2023-05-04 00:02:03 +02:00
network Fix record-to-JSON conversion for HTTP commands (#8663) 2023-03-29 11:55:51 -07:00
path Box ShellError in Value::Error (#8375) 2023-03-12 09:57:27 +01:00
platform adds a list subcommand to input (interactive selections) (#8963) 2023-05-04 19:14:41 +02:00
random Document and critically review ShellError variants - Ep. 3 (#8340) 2023-03-06 18:33:09 +01:00
shells Require that values that look like numbers parse as numberlike (#8635) 2023-03-28 19:31:38 +13:00
strings Revert numberlike parsing restriction (#8845) 2023-04-12 05:21:31 +12:00
system Don't run .sh files with /bin/sh (#8951) 2023-05-02 17:56:35 -05:00
viewers Bump tabled dependency to 0.11 (#8922) 2023-04-26 13:56:10 -05:00
default_context.rs adds a list subcommand to input (interactive selections) (#8963) 2023-05-04 19:14:41 +02:00
example_test.rs cratification: Example support (#8231) 2023-02-27 13:58:56 -08:00
hook.rs remove nu_cli crate dependency from nu_std (#8807) 2023-04-08 13:53:43 +02:00
input_handler.rs Box ShellError in Value::Error (#8375) 2023-03-12 09:57:27 +01:00
lib.rs feat: add a command_not_found hook (#8314) 2023-03-20 17:05:22 +13:00
progress_bar.rs cp progress bar implementation (#8012) 2023-02-22 11:57:38 -08:00
sort_utils.rs Support passing an empty list to sort, uniq, sort-by, and uniq-by (issue #5957) (#8669) 2023-03-29 19:55:38 -07:00
util.rs Fix process_range on 32-bit platforms (#8842) 2023-04-11 06:52:42 +12:00