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()),