aboutsummaryrefslogtreecommitdiff
path: root/src/command/status/configuration_status.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/command/status/configuration_status.rs')
-rw-r--r--src/command/status/configuration_status.rs27
1 files changed, 16 insertions, 11 deletions
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)
}