diff options
Diffstat (limited to 'src/cli')
| -rw-r--r-- | src/cli/mod.rs | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/src/cli/mod.rs b/src/cli/mod.rs new file mode 100644 index 0000000..862bcbe --- /dev/null +++ b/src/cli/mod.rs @@ -0,0 +1,21 @@ +use anyhow::Result; +use chrono::Local; +use rusqlite::Connection; + +use crate::{db, model::event, model::event::Event}; + +pub fn today(conn: &Connection) -> Result<String> { +    let today = Local::today().naive_local(); +    let mut events = db::list_non_repeated_between(conn, today, today)?; +    let repeated_events = db::list_repeated(conn)?; +    let repetitions = event::repetitions_between(&repeated_events, today, today); +    for repetition in repetitions.values().flatten() { +        events.push(repetition.clone()); +    } +    events.sort_by_key(|e| e.start); +    Ok(events +        .iter() +        .map(Event::pprint) +        .collect::<Vec<String>>() +        .join("\n")) +} | 
