From 9b749b946412b6f3d18c5d7997dc798f3947bb1e Mon Sep 17 00:00:00 2001 From: Ben Morrison Date: Tue, 9 Jun 2020 03:00:38 -0400 Subject: configurable line wrapping (80 default) disabled when set to a value below 10 --- src/posts.rs | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/posts.rs') diff --git a/src/posts.rs b/src/posts.rs index 4553b3e..c44e0f5 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -1,5 +1,6 @@ use std::io; +use crate::conf; use crate::db; use crate::error; use crate::user; @@ -74,16 +75,38 @@ pub fn create() -> error::Result<()> { // Shows the most recent posts. pub fn display() -> error::Result<()> { + let args = &*conf::ARGS; + let line_len = args + .value_of("line") + .unwrap_or_else(|| "80") + .parse::() + .unwrap_or_else(|_| 80); + let all = db::Posts::get_all(db::PATH); let mut postvec = Vec::new(); all.posts().iter().enumerate().for_each(|(id, post)| { + let body = post + .body + .trim() + .chars() + .into_iter() + .enumerate() + .map(|(i, e)| { + let i = i + 1; + if line_len > 9 && i % line_len == 0 { + return format!("{}\n", e); + } + e.to_string() + }) + .collect::(); + let newpost = format!( "{}. {} -> by {}\n{}\n\n", id + 1, post.title.trim(), post.author, - post.body.trim() + body ); postvec.push(newpost); }); -- cgit 1.4.1-2-gfad0