]> git.r.bdr.sh - rbdr/page/blobdiff - src/file_finder.rs
Read the files
[rbdr/page] / src / file_finder.rs
diff --git a/src/file_finder.rs b/src/file_finder.rs
new file mode 100644 (file)
index 0000000..fc32fa9
--- /dev/null
@@ -0,0 +1,25 @@
+use crate::file_handler::{File, FileHandler};
+use std::fs::read_dir;
+use std::path::PathBuf;
+
+pub fn find_files(directory_path: PathBuf) -> Vec<File> {
+    let mut result: Vec<File> = vec![];
+    let file_handler = FileHandler::default();
+    let entries = read_dir(directory_path).unwrap();
+    for entry in entries {
+        let path = entry.unwrap().path();
+        if path.starts_with(".") && !path.starts_with(".well-known") {
+            continue;
+        }
+        if path.is_dir() {
+            result.append(&mut find_files(path))
+        } else {
+            let file_type = file_handler.identify(&path);
+            result.push(File {
+                path: path,
+                file_type: file_type,
+            });
+        }
+    }
+    return result;
+}