Skip to main content

Now pull emptydir out into its own file

ID
3e99134
date
2024-06-18 20:44:52+00:00
author
Alex Chan <alex@alexwlchan.net>
parent
3776780
message
Now pull `emptydir` out into its own file
changed files
2 files, 33 additions, 30 deletions

Changed files

src/emptydir.rs (0) → src/emptydir.rs (769)

diff --git a/src/emptydir.rs b/src/emptydir.rs
new file mode 100644
index 0000000..f1d3056
--- /dev/null
+++ b/src/emptydir.rs
@@ -0,0 +1,31 @@
+use std::fs;
+use std::path::Path;
+
+use walkdir::WalkDir;
+
+/// Recurse through a given root directory, and delete any "empty" directories.
+///
+/// Returns the number of directories deleted.
+///
+pub fn emptydir(root: &Path) -> u32 {
+    let iterator = WalkDir::new(root)
+        .contents_first(true)
+        .into_iter()
+        .filter_map(|e| e.ok())
+        .filter(|e| e.file_type().is_dir())
+        .filter(|e| crate::can_be_deleted::can_be_deleted(e.path()));
+
+    let mut count_deleted: u32 = 0;
+
+    for entry in iterator {
+        match fs::remove_dir_all(entry.path()) {
+            Ok(_) => {
+                println!("{}", entry.path().display());
+                count_deleted += 1;
+            }
+            _ => (),
+        };
+    }
+
+    count_deleted
+}

src/main.rs (1227) → src/main.rs (515)

diff --git a/src/main.rs b/src/main.rs
index 197ee20..347b49b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,42 +1,14 @@
 #![deny(warnings)]
 
-use std::fs;
 use std::path::Path;
 
 use colored::*;
-use walkdir::WalkDir;
 
 mod can_be_deleted;
-
-/// Recurse through a given root directory, and delete any "empty" directories.
-///
-/// Returns the number of directories deleted.
-///
-fn emptydir(root: &Path) -> u32 {
-    let iterator = WalkDir::new(root)
-        .contents_first(true)
-        .into_iter()
-        .filter_map(|e| e.ok())
-        .filter(|e| e.file_type().is_dir())
-        .filter(|e| can_be_deleted::can_be_deleted(e.path()));
-
-    let mut count_deleted: u32 = 0;
-
-    for entry in iterator {
-        match fs::remove_dir_all(entry.path()) {
-            Ok(_) => {
-                println!("{}", entry.path().display());
-                count_deleted += 1;
-            }
-            _ => (),
-        };
-    }
-
-    count_deleted
-}
+mod emptydir;
 
 fn main() -> Result<(), std::io::Error> {
-    let count_deleted = emptydir(Path::new("."));
+    let count_deleted = emptydir::emptydir(Path::new("."));
 
     match count_deleted {
         0 => println!("{}", "No empty directories found".blue()),