X-Git-Url: https://git.r.bdr.sh/rbdr/blog/blobdiff_plain/606f82c76540a9d80366fdb943c06abe525f662e..0e276d039b8613de0cbd302bf328bb660ab063b6:/src/command/status/blog_status.rs diff --git a/src/command/status/blog_status.rs b/src/command/status/blog_status.rs new file mode 100644 index 0000000..df5256e --- /dev/null +++ b/src/command/status/blog_status.rs @@ -0,0 +1,24 @@ +use std::fs::read_dir; +use std::path::PathBuf; +use crate::configuration::Configuration; + +pub fn status(configuration: &Configuration) -> String { + let mut status_message = String::new(); + + status_message.push_str("# Blog\n"); + + // Main Configuration Locations + let blog_count = count_entries(&configuration.posts_directory); + status_message.push_str(&format!("Number of posts in blog: {}\n", blog_count)); + + let archive_count = count_entries(&configuration.archive_directory); + status_message.push_str(&format!("Number of posts in archive: {}\n", archive_count)); + status_message +} + +fn count_entries(path: &PathBuf) -> String { + match read_dir(path) { + Ok(entries) => entries.filter_map(Result::ok).count().to_string(), + Err(_) => "0".to_string() + } +}