2016-10-12 01:57:09 +02:00
|
|
|
ignore
|
|
|
|
======
|
|
|
|
The ignore crate provides a fast recursive directory iterator that respects
|
|
|
|
various filters such as globs, file types and `.gitignore` files. This crate
|
|
|
|
also provides lower level direct access to gitignore and file type matchers.
|
|
|
|
|
2020-11-17 02:07:16 +02:00
|
|
|
[![Build status](https://github.com/BurntSushi/ripgrep/workflows/ci/badge.svg)](https://github.com/BurntSushi/ripgrep/actions)
|
2016-10-12 01:57:09 +02:00
|
|
|
[![](https://img.shields.io/crates/v/ignore.svg)](https://crates.io/crates/ignore)
|
|
|
|
|
2020-11-03 17:33:36 +02:00
|
|
|
Dual-licensed under MIT or the [UNLICENSE](https://unlicense.org/).
|
2016-10-12 01:57:09 +02:00
|
|
|
|
|
|
|
### Documentation
|
|
|
|
|
|
|
|
[https://docs.rs/ignore](https://docs.rs/ignore)
|
|
|
|
|
|
|
|
### Usage
|
|
|
|
|
|
|
|
Add this to your `Cargo.toml`:
|
|
|
|
|
|
|
|
```toml
|
|
|
|
[dependencies]
|
2018-05-07 01:02:08 +02:00
|
|
|
ignore = "0.4"
|
2016-10-12 01:57:09 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
and this to your crate root:
|
|
|
|
|
|
|
|
```rust
|
|
|
|
extern crate ignore;
|
|
|
|
```
|
|
|
|
|
|
|
|
### Example
|
|
|
|
|
|
|
|
This example shows the most basic usage of this crate. This code will
|
|
|
|
recursively traverse the current directory while automatically filtering out
|
|
|
|
files and directories according to ignore globs found in files like
|
|
|
|
`.ignore` and `.gitignore`:
|
|
|
|
|
|
|
|
|
|
|
|
```rust,no_run
|
|
|
|
use ignore::Walk;
|
|
|
|
|
|
|
|
for result in Walk::new("./") {
|
|
|
|
// Each item yielded by the iterator is either a directory entry or an
|
|
|
|
// error, so either print the path or the error.
|
|
|
|
match result {
|
|
|
|
Ok(entry) => println!("{}", entry.path().display()),
|
|
|
|
Err(err) => println!("ERROR: {}", err),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
### Example: advanced
|
|
|
|
|
|
|
|
By default, the recursive directory iterator will ignore hidden files and
|
|
|
|
directories. This can be disabled by building the iterator with `WalkBuilder`:
|
|
|
|
|
|
|
|
```rust,no_run
|
|
|
|
use ignore::WalkBuilder;
|
|
|
|
|
|
|
|
for result in WalkBuilder::new("./").hidden(false).build() {
|
|
|
|
println!("{:?}", result);
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
See the documentation for `WalkBuilder` for many other options.
|