summaryrefslogtreecommitdiffstats
path: root/tools/slang-test/directory-util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/slang-test/directory-util.cpp')
-rw-r--r--tools/slang-test/directory-util.cpp29
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);
+}