nushell/crates/nu-glob
Ian Manske dfba62da00
Remove nu-glob's dependency on nu-protocol (#15349)
# Description

This PR solves a circular dependency issue (`nu-test-support` needs
`nu-glob` which needs `nu-protocol` which needs `nu-test-support`). This
was done by making the glob functions that any type that implements
`Interruptible` to remove the dependency on `Signals`.

# After Submitting

Make `Paths.next()` a O(1) operation so that cancellation/interrupt
handling can be moved to the caller (e.g., by wrapping the `Paths`
iterator in a cancellation iterator).
2025-03-20 17:32:41 +01:00
..
src Remove nu-glob's dependency on nu-protocol (#15349) 2025-03-20 17:32:41 +01:00
Cargo.toml Remove nu-glob's dependency on nu-protocol (#15349) 2025-03-20 17:32:41 +01:00
LICENSE-APACHE Nu glob (#4818) 2022-03-13 11:30:27 -07:00
LICENSE-MIT Nu glob (#4818) 2022-03-13 11:30:27 -07:00
README.md update nu-glob README (#5037) 2022-03-30 10:44:23 -07:00

nu-glob

Support for matching file paths against Unix shell style patterns.

Usage

To use nu-glob, add this to your Cargo.toml:

[dependencies]
nu-glob = "0.60.0"

Examples

Print all jpg files in /media/ and all of its subdirectories.

use nu_nu_glob::glob;

for entry in glob("/media/**/*.jpg").expect("Failed to read glob pattern") {
    match entry {
        Ok(path) => println!("{:?}", path.display()),
        Err(e) => println!("{:?}", e),
    }
}