Releases: bmatcuk/doublestar
Fixed FilepathGlob("")
Added MatchUnvalidated, PathMatchUnvalidated
These functions provide a small performance improvement in cases where you don't care about whether or not the pattern is valid (maybe because you already ran ValidatePattern
).
Fixed Match bug with patterns like `a/**/`
Added WithNoFollow
Added a WithNoFollow
option for Glob, GlobWalk, and FilepathGlob that will cause doublestar to not follow symlinks. However, note that there is a caveat due to io/fs limitations: if the pattern mentions a symlink before any meta characters, those symlinks will be followed. For example: path/to/symlink/*
will follow the symlink, assuming it is valid and links to a directory. path/**
and path/*/symlink/*
will not follow the symlink.
Added WithFilesOnly
Added a new option for Glob, GlobWalk, and FilepathGlob called WithFilesOnly
that will cause these functions to only return files. For example, a pattern such as folder/*
will only return the files inside the folder, and not any directories. Note that symlinks to directories are considered directories for this purpose.
Added WithFailOnPatternNotExist
Added the option WithFailOnPatternNotExist
to Glob, GlobWalk, and FilepathGlob. This option will cause doublestar to abort if the pattern references a path that does not exist, for example, nonexistent/path/*
.
Fixed Glob Bug With Pattern That Has Nonexistent Path And WithFailOnIOErrors
If the WithFailOnIOErrors
option was set and the pattern contained a reference to a nonexistent path (such as nonexistent/path/*
), Glob would return ErrNotExist
. It now returns an empty result with no error as expected.
For anyone that would prefer that doublestar returned an error, I'll be adding that as a feature (and a separate option) later.
Added Support for GlobOptions
This release adds options to Glob
, GlobWalk
, and FilepathGlob
. At the moment, the only option is WithFailOnIOErrors
that will cause doublestar to fail and return an error if it encounters any IO errors. It can be used like:
doublestar.Glob(fsys, pattern, WithFailOnIOErrors())
Thanks @fho!
Added Support for SkipDir to GlobWalk
Your callback to GlobWalk can now return SkipDir which functions as it does in the standard library: if the current path is a directory, GlobWalk will not recurse into it. If the current path is not a directory, GlobWalk will stop processing the parent directory.
Added FilepathGlob Convenience Func; Better Support for Escaped Meta Chars
FilepathGlob is a convenience function for people who want a drop-in replacement for filepath.Glob()
.
Thanks sebastien-rosset