diff --git a/src/kiss/Prelude.hx b/src/kiss/Prelude.hx index 155a49e..d6a426e 100644 --- a/src/kiss/Prelude.hx +++ b/src/kiss/Prelude.hx @@ -544,17 +544,19 @@ class Prelude { private static var kissProcess:Process = null; #end - public static function walkDirectory(basePath, directory, processFile:(String) -> Void, ?processFolderBefore:(String) -> Void, + public static function walkDirectory(basePath, directory, processFile:(String) -> Void, ?filterFolderBefore:(String) -> Bool, ?processFolderAfter:(String) -> Void) { #if (sys || hxnodejs) for (fileOrFolder in FileSystem.readDirectory(joinPath(basePath, directory))) { switch (fileOrFolder) { case folder if (FileSystem.isDirectory(joinPath(basePath, directory, folder))): var subdirectory = joinPath(directory, folder); - if (processFolderBefore != null) { - processFolderBefore(subdirectory); + if (filterFolderBefore != null) { + if (filterFolderBefore(subdirectory)) { + continue; + } } - walkDirectory(basePath, subdirectory, processFile, processFolderBefore, processFolderAfter); + walkDirectory(basePath, subdirectory, processFile, filterFolderBefore, processFolderAfter); if (processFolderAfter != null) { processFolderAfter(subdirectory); }