diff options
Diffstat (limited to 'src/command/status/configuration_status.rs')
| -rw-r--r-- | src/command/status/configuration_status.rs | 27 |
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) } |