diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-04-06 00:57:56 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-04-06 00:57:56 +0200 |
| commit | d0f582b98712d967b2f95d0405886d063bd89468 (patch) | |
| tree | cc644c21278d336772557366bcdd3e46b22065db /src/command/status | |
| parent | 8b3b94a38b443c50afc5b42cca45db7c18ce280d (diff) | |
Get stricter clippy
Diffstat (limited to 'src/command/status')
| -rw-r--r-- | src/command/status/blog_status.rs | 15 | ||||
| -rw-r--r-- | src/command/status/configuration_status.rs | 27 | ||||
| -rw-r--r-- | src/command/status/mod.rs | 4 |
3 files changed, 29 insertions, 17 deletions
diff --git a/src/command/status/blog_status.rs b/src/command/status/blog_status.rs index 48f608a..3f42f32 100644 --- a/src/command/status/blog_status.rs +++ b/src/command/status/blog_status.rs @@ -1,19 +1,26 @@ use crate::configuration::Configuration; +use std::fmt::Write; use std::fs::read_dir; +use std::io::{Error, ErrorKind, Result}; use std::path::PathBuf; -pub fn status(configuration: &Configuration) -> String { +pub fn status(configuration: &Configuration) -> Result<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: {blog_count}\n")); + writeln!(&mut status_message, "Number of posts in blog: {blog_count}") + .map_err(|_| Error::new(ErrorKind::Other, "Unable to write status"))?; let archive_count = count_entries(&configuration.archive_directory); - status_message.push_str(&format!("Number of posts in archive: {archive_count}\n")); - status_message + writeln!( + &mut status_message, + "Number of posts in archive: {archive_count}" + ) + .map_err(|_| Error::new(ErrorKind::Other, "Unable to write status"))?; + Ok(status_message) } fn count_entries(path: &PathBuf) -> String { diff --git a/src/command/status/configuration_status.rs b/src/command/status/configuration_status.rs index 96555c6..7babff8 100644 --- a/src/command/status/configuration_status.rs +++ b/src/command/status/configuration_status.rs @@ -1,8 +1,10 @@ use crate::configuration::Configuration; +use std::fmt::Write; use std::fs; +use std::io::{Error, ErrorKind, Result}; use std::path::PathBuf; -pub fn status(configuration: &Configuration) -> String { +pub fn status(configuration: &Configuration) -> Result<String> { let mut status_message = String::new(); status_message.push_str("# Configuration\n"); @@ -12,25 +14,28 @@ pub fn status(configuration: &Configuration) -> String { status_message.push_str(&get_directory_stats( "Configuration", &configuration.config_directory, - )); - status_message.push_str(&get_directory_stats("Data", &configuration.data_directory)); + )?); + status_message.push_str(&get_directory_stats("Data", &configuration.data_directory)?); status_message.push_str(&get_directory_stats( "Output", &configuration.output_directory, - )); + )?); status_message.push_str("\n## Blog Settings\n"); - status_message.push_str(&format!( - "Number of posts to keep: {}\n", + writeln!( + &mut status_message, + "Number of posts to keep: {}", configuration.max_posts - )); - status_message + ) + .map_err(|_| Error::new(ErrorKind::Other, "Unable to write status"))?; + Ok(status_message) } -fn get_directory_stats(label: &str, directory: &PathBuf) -> String { +fn get_directory_stats(label: &str, directory: &PathBuf) -> Result<String> { let mut status_message = String::new(); - status_message.push_str(&format!("{}: {}. ", label, directory.display())); + write!(&mut status_message, "{}: {}. ", label, directory.display()) + .map_err(|_| Error::new(ErrorKind::Other, "Unable to write status"))?; if directory.exists() { status_message.push_str("Exists "); if fs::read_dir(directory).is_ok() { @@ -42,5 +47,5 @@ fn get_directory_stats(label: &str, directory: &PathBuf) -> String { status_message.push_str("Does not exist.\n"); } - status_message + Ok(status_message) } diff --git a/src/command/status/mod.rs b/src/command/status/mod.rs index b92ef5f..3bad923 100644 --- a/src/command/status/mod.rs +++ b/src/command/status/mod.rs @@ -20,7 +20,7 @@ impl super::Command for Status { fn execute(&self, _: Option<&String>, configuration: &Configuration, _: &str) -> Result<()> { let status_providers = available_status_providers(); for status_provider in status_providers { - println!("{}\n----\n", status_provider(configuration)); + println!("{}\n----\n", status_provider(configuration)?); } Ok(()) } @@ -38,6 +38,6 @@ impl super::Command for Status { } } -fn available_status_providers() -> Vec<fn(&Configuration) -> String> { +fn available_status_providers() -> Vec<fn(&Configuration) -> Result<String>> { vec![configuration_status::status, blog_status::status] } |