diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2020-08-05 16:12:55 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-05 16:12:55 -0400 |
| commit | 3231048b328551edff9a923dec3f7bd46ed5aff8 (patch) | |
| tree | 844e82463e964afb04bca1deb85acfda1bdc56a2 /tools/slang-test/directory-util.cpp | |
| parent | e713b56a63dcbf945e3e0e6d82666318795c74ff (diff) | |
Refactor enumerating directory contents (#1478)
* Use m_style for OSFindFilesResult
* Refactor of FindFilesResult.
* Fixes on linux for FindFiles.
* Simplify FindFilesState, and linux support for pattern matching.
* Small fixes to linux FindFilesState
* Fix typo on linux FindFiles
* Fix typo in linux FindFiles.
* Renamed some variables, and improved comments on FindFiles.
* Improve comments on FildFiles
* Small improvements around FindFiles.
* Refactor FindFiles again.. into a visitor and function in Path.
* Fix some problems on linux.
* Fix linux typo.
* Renamed os -> find-file-util
* find-file-utl -> directory-util
Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'tools/slang-test/directory-util.cpp')
| -rw-r--r-- | tools/slang-test/directory-util.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/slang-test/directory-util.cpp b/tools/slang-test/directory-util.cpp new file mode 100644 index 000000000..39d06a2a2 --- /dev/null +++ b/tools/slang-test/directory-util.cpp @@ -0,0 +1,29 @@ +// find-file-util.cpp +#include "directory-util.h" + +#include "slang-com-helper.h" + +using namespace Slang; + +/* static */SlangResult DirectoryUtil::findDirectories(const Slang::String& directoryPath, Slang::List<Slang::String>& outPaths) +{ + outPaths.clear(); + CombinePathVisitor visitor(directoryPath, Path::TypeFlag::Directory); + SLANG_RETURN_ON_FAIL(Path::find(directoryPath, nullptr, &visitor)); + outPaths.swapWith(visitor.m_paths); + return SLANG_OK; +} + +/* static */SlangResult DirectoryUtil::findFilesMatchingPattern(const Slang::String& directoryPath, const char* pattern, Slang::List<Slang::String>& outPaths) +{ + outPaths.clear(); + CombinePathVisitor visitor(directoryPath, Path::TypeFlag::File); + SLANG_RETURN_ON_FAIL(Path::find(directoryPath, pattern, &visitor)); + outPaths.swapWith(visitor.m_paths); + return SLANG_OK; +} + +/* static */SlangResult DirectoryUtil::findFiles(const Slang::String& directoryPath, Slang::List<Slang::String>& outPaths) +{ + return findFilesMatchingPattern(directoryPath, nullptr, outPaths); +} |
