aboutsummaryrefslogtreecommitdiff
path: root/src/command/status
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-04-06 00:57:56 +0200
committerRuben Beltran del Rio <git@r.bdr.sh>2025-04-06 00:57:56 +0200
commitd0f582b98712d967b2f95d0405886d063bd89468 (patch)
treecc644c21278d336772557366bcdd3e46b22065db /src/command/status
parent8b3b94a38b443c50afc5b42cca45db7c18ce280d (diff)
Get stricter clippy
Diffstat (limited to 'src/command/status')
-rw-r--r--src/command/status/blog_status.rs15
-rw-r--r--src/command/status/configuration_status.rs27
-rw-r--r--src/command/status/mod.rs4
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]
}