Add directory filtering to globber (#728)

Co-authored-by: Thomas Boop <52323235+thboop@users.noreply.github.com>
This commit is contained in:
Matisse Hack
2021-06-01 12:57:03 -07:00
committed by GitHub
parent 51dc07a106
commit 439eaced07
4 changed files with 60 additions and 1 deletions

View File

@@ -8,6 +8,7 @@ export function getOptions(copy?: GlobOptions): GlobOptions {
const result: GlobOptions = {
followSymbolicLinks: true,
implicitDescendants: true,
matchDirectories: true,
omitBrokenSymbolicLinks: true
}
@@ -22,6 +23,11 @@ export function getOptions(copy?: GlobOptions): GlobOptions {
core.debug(`implicitDescendants '${result.implicitDescendants}'`)
}
if (typeof copy.matchDirectories === 'boolean') {
result.matchDirectories = copy.matchDirectories
core.debug(`matchDirectories '${result.matchDirectories}'`)
}
if (typeof copy.omitBrokenSymbolicLinks === 'boolean') {
result.omitBrokenSymbolicLinks = copy.omitBrokenSymbolicLinks
core.debug(`omitBrokenSymbolicLinks '${result.omitBrokenSymbolicLinks}'`)

View File

@@ -21,6 +21,14 @@ export interface GlobOptions {
*/
implicitDescendants?: boolean
/**
* Indicates whether matching directories should be included in the
* result set.
*
* @default true
*/
matchDirectories?: boolean
/**
* Indicates whether broken symbolic should be ignored and omitted from the
* result set. Otherwise an error will be thrown.

View File

@@ -131,7 +131,7 @@ export class DefaultGlobber implements Globber {
// Directory
if (stats.isDirectory()) {
// Matched
if (match & MatchKind.Directory) {
if (match & MatchKind.Directory && options.matchDirectories) {
yield item.path
}
// Descend?