Match file paths against Unix style patterns called globs.
glob is a cross-platform, pure Nim implementation of globs that supports creating patterns, testing file paths, and walking through directories to find matching files or directories.
If you're unfamiliar with globs, they essentially let you use a simple language to describe what filenames you're looking for with wildcards, placeholders, and other pretty intuitive features.
You can find the full documentation here.
- full glob support across platforms
- all glob syntax:
?wildcards plus ranges, groups, & pattern matching
- efficient file system walking without unnecessary traversals
- configurable iteration behavior with sane defaults
- user defined filters for matching and directory traversal
installation & usage
Install using Nimble:
nimble install glob
import and use:
import glob const pattern = glob("src/**/*.nim") assert "src/foo.nim".matches(pattern) assert "src/lib.rs".matches(pattern).not # directories are expanded by default # so `src` and `src/**` are equivalent for path in walkGlob("src"): # every file in `src` or its subdirectories, lazily echo path # need the list now (eagerly)? from sequtils import toSeq echo toSeq(walkGlob("src/*.nim"))
- Clone the repo:
git clone https://github.com/citycide/glob.git
- Move into the newly cloned directory:
- Make your changes:
- Run tests:
This project is open to contributions of all kinds! Please check and search the issues if you encounter a problem before opening a new one. Pull requests for improvements are also welcome — see the steps above for development.
MIT © Bo Lingen / citycide